PAndOrA

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

요약
P개의 구간 AND 및 구간 OR 조건을 만족하는 길이 N의 수열을 찾고, 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
비트 연산, 구현, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

PP개의 조건이 주어진다. 이때, 다음 조건들을 만족하는 수열 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N를 출력하시오.

  • 1 i j x: A_i,A_i+1,⋯ ,A_jA\_i, A\_{i + 1}, \cdots, A\_j를 모두 bitwise AND한 값이 정수 xx이다.
  • 2 i j x: A_i,A_i+1,⋯ ,A_jA\_i, A\_{i + 1}, \cdots, A\_j를 모두 bitwise OR한 값이 정수 xx이다.

입력

첫 번째 줄에 수열의 길이 NN과 조건의 개수 PP가 공백으로 구분되어 주어진다. (1≤N,P≤1,000)(1 \le N, P \le 1\\,000)

두 번째 줄부터 PP개의 줄에 걸쳐 조건이 주어진다. (1≤i≤j≤N;(1 \le i \le j \le N; 0≤x<231)0 \le x \lt 2^{31})

출력

PP개의 조건을 만족하는 수열이

  • 존재한다면, 수열 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N을 공백으로 구분하여 출력한다. (0≤A_i<231)(0 \le A\_i \lt 2^{31})
  • 존재하지 않는다면, -1을 출력한다.

조건을 만족하는 수열이 여럿인 경우는 그중 아무거나 하나를 출력한다.

예제3

  1. 예제 1

    입력
    1 2
    1 1 1 1
    1 1 1 2
    
    예상 출력
    -1
    
  2. 예제 2

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

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