题目:
D. 逆序对
描述
定义:对于一个包含N个整数的序列A[1...N],如果有i < j,且A[ i ]>A[ j ],则称(A[ i] ,A[ j] )为数组A中的一组逆序对。
Lina是一个爱思考的孩子,在学习了逆序对问题之后,生出了另一个问题——所有逆序对中,差值最大的是哪一组?
对于小数据量的情况,Lina当然是知道的,比如序列:3 2 1 5 4,逆序对有3 2,3 1,2 1,5 4这4组,其中3 1的差值最大,因此答案为3 1。
但是当数据量变大的时候,Lina就难以确定了。她现在寻求你的帮助,希望你编写一个程序,对于给定的一个序列,找出其中差值最大的一组逆序对。当然,差值最大的逆序对可能不止一组,比如序列3 2 1 5 4 6 4,其中逆序对3 1 和 6 4 差值均是所有逆序对中最大的,为2,这种情况就只需要输出前项最小的一组即可(这个例子就输出3 1)。
输入
第1行一个整数N;
第2行为一个长度为N的序列,以空格分隔。
输出
2个以空格分隔的整数,表示答案。 样例
7 3 2 1 5 4 6 4
3 1
15
20 82 9 82 54 55 58 79 85 65 78 37 9 14 92
85 9
20
9 95 28 16 77 57 16 89 13 97 99 37 33 34 90 27 30 54 45 28
95 13
提示 数据范围: 对于30%的数据,1≤N≤ 1000,1≤A[i]≤1000;
对于100%的数据,1≤N≤ 100000,1≤A[i]≤10^9