站外求助QWQ
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/26 18:02
  • 上次更新2023/11/26 20:17:44
查看原帖
站外求助QWQ
937468
封禁用户楼主2023/11/26 18:02

题目:

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

2023/11/26 18:02
加载中...