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

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

j번째 수

시간 제한10초메모리 제한512 MB

요약
각 삽입 값을 해당 구간 배열들에 복사한 뒤 구간에서 모은 값들 가운데 j번째로 작은 값을 구합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 세그먼트 트리, 정렬, 구간
정답자
아직 제출이 없습니다

문제

비어 있는 배열 t1,t2,…,tNt_1, t_2, \dots, t_N이 있다. 먼저 다음 형태의 삽입 연산 MM개를 주어진 순서대로 수행한다.

  • a≤i≤ba \le i \le b를 만족하는 모든 ii에 대해 배열 tit_i에 값 vv를 하나 넣는다.

삽입을 모두 끝낸 뒤 다음 형태의 질의 QQ개를 처리한다.

  • x≤i≤yx \le i \le y를 만족하는 모든 배열 tit_i의 값을 한데 모아 오름차순으로 정렬한 다음, 그 수열의 jj번째 값을 출력한다.

한 배열에 같은 값이 여러 번 들어갈 수 있고, 정렬한 수열에서도 중복은 사라지지 않는다.

입력

입력 형식은 다음과 같다.

N M Q
a1 b1 v1
...
aM bM vM
x1 y1 j1
...
xQ yQ jQ

첫째 줄에 세 정수 NN, MM, QQ가 주어진다 (1≤N≤1091 \le N \le 10^9, 1≤M≤1051 \le M \le 10^5, 1≤Q≤1051 \le Q \le 10^5).

이어지는 MM개 줄에는 삽입 연산이 한 줄에 하나씩, 세 정수 aia_i, bib_i, viv_i로 주어진다 (1≤ai≤bi≤N1 \le a_i \le b_i \le N, 1≤vi≤1091 \le v_i \le 10^9).

그 다음 QQ개 줄에는 질의가 한 줄에 하나씩, 세 정수 xix_i, yiy_i, jij_i로 주어진다 (1≤xi≤yi≤N1 \le x_i \le y_i \le N, 1≤ji≤∑xi≤k≤yi∣tk∣1 \le j_i \le \sum_{x_i \le k \le y_i} |t_k|). 여기서 ∣tk∣|t_k|는 배열 tkt_k에 들어 있는 값의 개수다.

출력

각 질의마다 jj번째 값을 한 줄에 하나씩 출력한다.

힌트

첫 번째 예제에서 삽입 연산을 모두 끝내면 각 배열은 다음과 같다.

[1,3], [1], [1,2], [1,1,2], [1,1]

t1t_1, t2t_2, t3t_3의 값을 모아 정렬하면 [1,1,1,2,3][1,1,1,2,3]이고, 이 수열의 4번째 값은 2다.

예제2

  1. 예제 1

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

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