模式寻对

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

概念回顾

逆序对:数列a[0],a[1],a[2]…中的任意两个数a[i],a[j],

如果i<j, 并且a[i]>a[j],

那么我们就说这两个数构成了一个逆序对。

逆序数:一个数列中逆序对的总数。

题目描述

输入一个正整数n,随后给出一个长度为n的整数序列 a[0],a[1],a[2],...,a[n-1] ,再给定多组数组下标范围,求给定序列的逆序数。

输入

多组测试数据(不超过10组),以EOF结尾。

每组测试数据第一行为数组长度n,正整数,代表数组长度,数据范围为0<n<=10000

第二行为n个整数,为数组an,保证数组中每个数在int范围内。

第三行为一个整数t,代表t次查询,0<t<=1000

接下来t行,每行两个数x,y,代表数组下标区间,保证0<=x<=y<=n-1

输出

对于每次查询,输出一行,每行一个数,代表所求逆序数。

具体参见样例。

输入样例

5
4 8 4 0 0
3
0 4
2 4
0 2

输出样例

7
2
1

提示

使用时间复杂度为 $O(n^{2})$ 的算法会超时。

联系下归并排序~

相关推荐