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

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

역전 교환

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

요약
인접한 역전쌍을 균등한 확률로 골라 교환하며 순열을 정렬할 때, 각 교환 비용을 두 값의 차의 절댓값으로 정의하고 총비용의 기댓값을 10^9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

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

문제

11부터 nn까지의 정수로 이루어진 순열 xx가 주어진다.

이 순열을 여러 번의 연산으로 정렬하려고 한다. 한 번의 연산에서는 xi>xi+1x_i > x_{i+1}인 인접한 두 원소 xix_i와 xi+1x_{i+1}을 골라 서로 교환한다. 이러한 ii가 여러 개 있으면 그중 하나를 같은 확률로 고른다. 그러한 ii가 없으면 과정이 끝난다.

xix_i와 xi+1x_{i+1}을 교환하는 비용은 ∣xi−xi+1∣|x_i - x_{i+1}|이다. 순열을 정렬하는 데 드는 총 비용의 기댓값을 109+710^9 + 7로 나눈 나머지를 구한다.

입력

첫째 줄에 정수 nn이 주어진다. (1≤n≤1061 \leq n \leq 10^6)

둘째 줄에 nn개의 정수 x1,x2,…,xnx_1, x_2, \ldots, x_n이 주어진다. (1≤xi≤n1 \leq x_i \leq n) xx는 11부터 nn까지의 정수로 이루어진 순열임이 보장된다.

출력

총 비용의 기댓값을 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

총 비용의 기댓값은 서로소인 음이 아닌 정수 pp와 qq에 대해 p/qp / q로 나타낼 수 있다. 예를 들어 기댓값이 정수라면 q=1q = 1이다. p⋅q−1 mod (109+7)p \cdot q^{-1} \bmod (10^9 + 7)을 출력한다.

예제2

  1. 예제 1

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

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