3131: 循环逆序对
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:0
题目描述
给定一个长度为 �n 的数列 �1,�2,⋯,��a1,a2,⋯,an 和一个整数 �k。将数列 �a 重复 �k 次,得到长度为 �×�n×k 的循环数列 �A,�A 的正式定义如下:
- �A 的前 �n 项等于 �a 的前 �n 项——对于 1≤�≤�1≤i≤n,有 ��=��Ai=ai;
- 之后每个 �A 的元素 ��Ai,都有 ��=��−�Ai=Ai−n;
如果能够找到一对整数 (�,�)(i,j),满足 �<�i<j 且 ��>��Ai>Aj,则 (�,�)(i,j) 就是一对逆序对。请求出 �A 中的逆序对数量。
输入
- 第一行:两个整数 �n 与 �k;
- 第二行:�n 个整数 �1,�2,⋯,��a1,a2,⋯,an。
- 对于 20%20% 的数据,保证 1≤�≤101≤k≤10;
- 对于 40%40% 的数据,保证 1≤�≤50001≤k≤5000;
- 对于 60%60% 的数据,保证 1≤�≤1000001≤k≤100000;
- 对于 100%100% 的数据,保证 1≤�≤10000001≤k≤1000000
- 1≤�≤50001≤n≤5000, 1≤��≤50001≤ai≤5000。
输出
- 单个整数:表示 �A 中逆序对数量。
样例输入 复制
3 2
3 1 4
样例输出 复制
5