만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

토토로

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

요약
길이 N인 순열 K개를 합성해서 만들 수 있는 모든 순열의 역순서쌍 개수 평균을 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

길이가 NN인 순열 p1,…,pKp_1, \dots, p_K가 KK개 주어진다.

SS는 순열 pip_i들을 유한 번 합성해서 얻을 수 있는 모든 순열의 집합이다. 두 순열 π\pi와 τ\tau의 합성은 위치 ii에서 π(τ(i))\pi(\tau(i))의 값을 가진다. 예를 들어 π=(1,3,2)\pi = (1, 3, 2), τ=(2,3,1)\tau = (2, 3, 1)이면 π∘τ=(3,2,1)\pi \circ \tau = (3, 2, 1)이다. 같은 순열을 여러 번 합성해도 된다.

SS는 길이 NN인 모든 순열의 집합에 포함되므로 유한 집합이다.

순열 π\pi의 역전 수 I(π)I(\pi)는 1≤i<j≤N1 \le i < j \le N이고 π(i)>π(j)\pi(i) > \pi(j)인 순서쌍 (i,j)(i, j)의 개수이다.

1∣S∣∑π∈SI(π)\frac{1}{|S|}\sum_{\pi \in S} I(\pi)를 구하라. 이 값은 기약분수 AB\frac{A}{B}로 나타낼 수 있으며, BB는 109+710^9 + 7로 나누어떨어지지 않는다. 0≤X<109+70 \le X < 10^9 + 7이고 X⋅B≡A(mod109+7)X \cdot B \equiv A \pmod{10^9 + 7}을 만족하는 XX를 출력하라.

입력

첫 줄에 자연수 KK와 NN이 주어진다.

이어지는 KK개의 줄에는 순열 pip_i가 11부터 NN까지의 서로 다른 정수 NN개를 공백으로 구분해 한 줄씩 주어진다.

출력

답을 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

힌트

첫 번째 테스트 케이스 설명: S={(2,3,1),(3,1,2),(1,2,3)}S = \{(2, 3, 1), (3, 1, 2), (1, 2, 3)\}이다. 첫 번째 순열의 역전 수는 2이고, 두 번째 순열도 2이며, 항등 순열은 0이다. 평균은 43\frac{4}{3}이고, 이를 109+710^9 + 7로 나눈 나머지가 출력값과 일치한다.

두 번째 테스트 케이스 설명: SS가 {1,2,3,4,5}\{1, 2, 3, 4, 5\}의 모든 순열의 집합과 같다는 것을 확인할 수 있다. 주어진 순열들을 합성하면 다른 모든 순열을 얻을 수 있다.

세 번째 테스트 케이스 설명: 이 경우 ∣S∣=20|S| = 20이고, 답은 14910\frac{149}{10}을 109+710^9 + 7로 나눈 나머지이다.

예제3

  1. 예제 1

    입력
    1 3
    2 3 1
    
    예상 출력
    333333337
    
  2. 예제 2

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

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