아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

RLE Inversion Counting

시간 제한3초메모리 제한1024 MB

요약
각 조작마다 수열 B를 K번 이어붙일 때, 최종 배열에서 순서쌍 i<j이며 A_i>A_j인 쌍의 개수를 1e9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
정렬, 조합론, 수학
정답자
아직 제출이 없습니다

문제

배열 AA가 있습니다. 처음에 AA는 빈 배열입니다. 다음과 같은 조작을 MM번 해서 배열 AA를 채웁니다.

  • KK와 정수열 B_1,⋯ ,B_NB\_1, \cdots, B\_N이 주어집니다. AA의 가장 뒤에 B_1,B_2,⋯ ,B_NB\_1, B\_2, \cdots, B\_N을 차례로 이어붙이는 것을 KK 번 반복합니다.

이렇게 만들어진 배열 A_1,A_2,⋯ ,A_∣A∣A\_1, A\_2, \cdots, A\_{\lvert A \rvert}에 대해 다음 조건을 만족시키는 (i,j)(i, j) 정수쌍의 개수를 출력하세요.

  • 1≤i<j≤∣A∣1 \le i < j \le \lvert A \rvert
  • A_i>A_jA\_i > A\_j

입력

첫 줄에 조작의 횟수 MM이 주어집니다. (1≤M≤500,000)(1 \le M \le 500\\,000)

다음 줄부터 MM번의 조작에 관한 정보가 두 줄에 걸쳐 차례대로 MM번 들어옵니다.

각 조작의 첫 줄에는 조작의 횟수 KK와 배열의 길이 NN이 공백으로 구분되어 주어집니다. (1≤K≤109;(1 \le K \le 10^9; 1≤N≤500,000)1 \le N \le 500\\,000)

다음 줄에는 배열의 원소를 의미하는 B_1,B_2,⋯ ,B_NB\_1, B\_2, \cdots, B\_N이 공백으로 구분되어 주어집니다. (1≤B_i≤109)(1 \le B\_i \le 10^9)

입력에서 주어지는 모든 NN의 합은 500,000500\\,000 이하입니다.

출력

문제의 조건을 만족시키는 (i,j)(i, j) 정수쌍의 개수를 출력하세요. 단, 수가 매우 커질 수 있으니 1,000,000,007(=109+7)1\\,000\\,000\\,007 (= 10^9+7)로 나눈 나머지를 출력하세요. 1,000,000,0071\\,000\\,000\\,007은 소수입니다.

예제2

  1. 예제 1

    입력
    2
    2 4
    3 1 4 1
    3 1
    5
    
    예상 출력
    11
    
  2. 예제 2

    입력
    3
    1 4
    1 5 9 2
    6 5
    3 5 8 9 7
    9 3
    2 3 8
    
    예상 출력
    887