三值逆序对
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
【题目描述】
小灰灰最近特别喜欢研究那些很长很简单的序列,他有一个仅由数字 构成的长度为 的序列,第 个元素是 。
小灰灰想考考小蓝,于是他询问小蓝,这个序列中逆序对的个数是多少。
如果存在一对元素前面的元素比后面的元素数值大,那么它们就构成一对逆序对。
- 形式化地说,若存在一对有序对 ,满足 且 ,那么这个有序对就是逆序对。
你需要编程求出序列中逆序对的个数。
【输入描述】
第一行输入一个整数 。
第二行输入 个整数,第 个整数表示 。
保证:
- ;
- 。
【输出描述】
输出一行一个整数,表示序列中逆序对的个数。
【样例 1】
【样例 1 输入】
3
3 1 2
【样例 1 输出】
2
【样例 1 解释】
序列为 。
其中 满足 ,构成一对逆序对。
满足 ,也构成一对逆序对。
除此之外没有其它逆序对,所以答案为 。
【样例 2】
【样例 2 输入】
10
2 3 1 2 1 3 2 1 3 1
【样例 2 输出】
19
【样例 2 解释】
统计所有满足前面的数大于后面的数的位置对,一共有 对。
【样例 3】
见选手目录下的 Data/sample3.in 和 Data/sample3.ans。
该样例满足 。
【样例 4】
见选手目录下的 Data/sample4.in 和 Data/sample4.ans。
该样例满足 。
【样例 5】
见选手目录下的 Data/sample5.in 和 Data/sample5.ans。
该样例无特殊性质。
【数据规模与约定】
| 测试点编号 | 分数 | 特殊性质 |
|---|---|---|
1 ~ 5 |
15 | |
6 ~ 10 |
35 | 即数字仅包含 1 和 2 |
11 ~ 15 |
50 | 无 |