만드는 중입니다

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

blobhyperthink

면접 대비

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

요약
길이 N인 수열 A에서 값이 엄격히 증가하는 길이 11의 부분수열 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

블롭은 쉬는 시간에 문제 하나를 생각해 냈다.

길이가 NN인 수열 AA에서 다음 조건을 만족하는 (i,j)(i, j) 쌍의 개수를 구하자!

  • i<ji < j이고 Ai<AjA_i < A_j이다.

이 문제는 블롭에게 너무 쉬웠다. 그래서 블롭은 쌍의 원소 수를 세 개로 늘렸다. 그래도 너무 쉬워서 네 개로 늘렸다. ...

그래도 너무 쉬워서 열 개로 늘렸고, 다시 열한 개로 늘렸다. 이제 이 문제는 블롭에게 너무 어려워서 풀 수 없었다!

블롭을 위해 다음 조건을 만족하는 (i,j,k,l,m,o,p,q,r,s,t)(i, j, k, l, m, o, p, q, r, s, t) 쌍의 개수를 109+710^9+7로 나눈 나머지를 구하자.

  • i<j<k<l<m<o<p<q<r<s<ti < j < k < l < m < o < p < q < r < s < t이고, Ai<Aj<Ak<Al<Am<Ao<Ap<Aq<Ar<As<AtA_i < A_j < A_k < A_l < A_m < A_o < A_p < A_q < A_r < A_s < A_t이다.

입력

첫째 줄에 수열의 길이 NN이 주어진다.

둘째 줄에 수열의 원소를 나타내는 NN개의 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다.

출력

첫째 줄에 조건에 맞는 쌍의 개수를 109+710^9+7로 나눈 나머지를 출력한다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 1≤Ai≤N1 \le A_i \le N (1≤i≤N)(1 \le i \le N)

예제1

  1. 예제 1

    입력
    12
    1 2 3 4 5 6 7 8 9 10 11 12
    
    예상 출력
    12