#6999. 循环逆序对

循环逆序对

题目描述

给定一个长度为 nn 的数列 a1,a2,,ana_1, a_2, \cdots, a_{n} 和一个整数 kk。将数列 aa 重复 kk 次,得到长度为 n×kn\times k 的循环数列 AAAA 的正式定义如下:

  • AA 的前 nn 项等于 aa 的前 nn 项——对于 1in1\leq i\leq n,有 Ai=aiA_i = a_{i}
  • 之后每个 AA 的元素 AiA_i,都有 Ai=AinA_i = A_{i-n}

如果能够找到一对整数 (i,j)(i,j),满足 i<ji < jAi>AjA_i > A_j,则 (i,j)(i,j) 就是一对逆序对。请求出 AA 中的逆序对数量。

输入格式

  • 第一行:两个整数 nnkk
  • 第二行:nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_{n}

输出格式

  • 单个整数:表示 AA 中逆序对数量。
3 2
3 1 4
5

数据范围

  • 对于 20%20\% 的数据,保证 1k101 \le k \le 10
  • 对于 40%40\% 的数据,保证 1k50001\le k \le 5000
  • 对于 60%60\% 的数据,保证 1k1000001\le k \le 100000
  • 对于 100%100\% 的数据,保证 1k10000001 \le k \le 1000000
  • 1n50001\le n \le 5000, 1ai50001\le a_i \le 5000