logo AlgoBeat OnlineJudge
登录 注册

#214662. [RMI 2018] W

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

翻译来自于 LibreOJ


题目译自 Romanian Master of Informatics 2018 Day2 T3 「W

一个数字数组如果满足以下条件,就被称为 W 形数组:

  1. 它由四个段组成,依次为:递减、递增、递减、递增。
  2. 排序非严格,即递增和递减段可能包含连续的相等元素。
  3. 每两个连续段共享一个公共端点。
  4. 每个段至少包含两个不同值。

例如,数组 是 W 形的,分为段 。而数组 不是 W 形的,因为虽然可以分为 ,但段 不包含两个不同值。

给定一个包含 个整数的数组,你需要计算有多少个不同的 W 形排列?两个排列 若存在某个位置 使得 ,则视为不同。在上述例子中, 只计数一次,因为三个 的内部排列不产生不同的排列。

输入格式

第一行包含一个整数 。第二行包含 个空格分隔的整数,表示数组的值。

输出格式

输出一个整数,表示不同的 W 形排列数量,对 取模。

样例

样例输入 1

5
3 1 4 2 3

样例输出 1

6

样例输入 2

7
1 2 2 2 3 4 4

样例输出 2

72

数据范围与提示

样例 1 解释

在第一个样例中,输入数组为 ,共有 个不同的 W 形排列:

数据范围

对于所有输入数据,满足:

  • 数组值是介于 之间的整数

每个测试点将单独评分。

子任务 分值 附加限制
个元素中只有两种不同值
个元素的值互不相同
无附加限制