만드는 중입니다

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

복권

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

요약
원소가 1부터 k까지인 길이 n의 배열 중, 각 구간의 최댓값이 주어진 x_i와 같은 배열의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 세그먼트 트리, 정렬, 배열
정답자
아직 제출이 없습니다

문제

땅 속 깊은 곳, 그루의 악당 연구소에는 셀 수 없이 많은 미니언이 살고 있다. 노란 이 존재들의 생활에 변화를 주려고, 그루는 매달 복권을 열기로 했다. 복권은 다음과 같이 진행된다. 각 미니언에게는 크기가 nn인 양의 정수 배열이 주어지며, 배열의 모든 원소는 kk 이하이다. 이후 그루는 mm개의 세 쌍 lil_i, rir_i, xix_i의 목록을 발표한다. 각 ii에 대해 lil_i와 rir_i를 구간 최댓값 질의의 범위로 본다. 모든 ii에 대해 그 질의의 답이 xix_i인 배열을 가진 미니언이 당첨된다. 그루는 몇 명의 미니언이 상품을 받으러 올지 알고 싶어 한다. 미니언이 아주 많아서 위에서 설명한 배열 하나하나가 정확히 한 미니언에게 주어졌다고 가정한다. 수가 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

입력

첫 줄에 세 정수 nn, mm, kk (1≤n≤1000001 \le n \le 100000, 1≤m≤1000001 \le m \le 100000, 1≤k≤10000000001 \le k \le 1000000000)가 주어진다. 각각 배열의 크기, 질의의 개수, 배열 원소의 최댓값이다. 이어지는 mm개의 줄에는 각각 세 정수 lil_i, rir_i, xix_i (1≤li≤ri≤n1 \le l_i \le r_i \le n, 1≤xi≤k1 \le x_i \le k)가 주어지며, 이는 ii번째 질의를 나타낸다.

출력

당첨된 미니언의 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

예제1

  1. 예제 1

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