RMQ 역문제

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

요약
1부터 N까지의 순열에 대한 구간 최댓값 질의 결과가 주어질 때, 이를 만족하는 순열이 존재하는지 판정한다.
난이도

보통10점 중 7점

유형
그리디, 구간, 정렬
정답자
아직 제출이 없습니다

문제

구간 최댓값 질의(RMQ) 문제는 다음과 같다.

11부터 NN까지의 정수로 이루어진 순열 PP가 주어진다. 질의는 1≤L≤R≤N1 \le L \le R \le N을 만족하는 (L,R)(L, R) 꼴이고, PP의 LL번째 수부터 RR번째 수까지 중 최댓값을 묻는다.

P=(3,1,4,2,5)P = (3, 1, 4, 2, 5)인 경우 질의 (1,2)(1, 2)의 답은 max⁡(3,1)=3\max(3, 1) = 3, 질의 (2,4)(2, 4)의 답은 max⁡(1,4,2)=4\max(1, 4, 2) = 4, 질의 (4,5)(4, 5)의 답은 max⁡(2,5)=5\max(2, 5) = 5이다.

이 문제에서는 RMQ를 거꾸로 푼다. 정수 NN과 질의의 개수 MM, 그리고 각 질의 (Li,Ri)(L_i, R_i)와 그 답 AiA_i가 주어진다. 주어진 질의를 모두 만족하는 순열 PP가 존재하는지 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 질의의 개수 MM이 주어진다. (1≤N≤1091 \le N \le 10^9, 1≤M≤501 \le M \le 50)

둘째 줄부터 MM개의 줄에 각 질의의 LiL_i, RiR_i와 답 AiA_i가 주어진다. (1≤Li≤Ri≤N1 \le L_i \le R_i \le N, 1≤Ai≤N1 \le A_i \le N)

출력

주어진 질의를 모두 만족하는 순열이 존재하면 1을, 존재하지 않으면 0을 출력한다.

예제6

  1. 예제 1

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

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

    입력
    600 6
    1 100 100
    101 200 200
    201 300 300
    301 400 400
    401 500 500
    501 600 600
    
    예상 출력
    1
    
  4. 예제 4

    입력
    1000000000 2
    1234 5678 10000
    1234 5678 20000
    
    예상 출력
    0
    
  5. 예제 5

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

    입력
    1000000000 1
    1 1000000000 19911120
    
    예상 출력
    0