만드는 중입니다

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

편광판

면접 대비

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

요약
일렬로 놓인 편광판의 각도를 바꾸는 갱신과 함께, 특정 편광판에 들어간 빛이 뒤쪽 편광판을 통과할 수 있는지 판별합니다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 비트 연산
정답자
아직 제출이 없습니다

문제

편광판은 빛의 진동 방향을 바꾼다.

빛이 현재 진동하는 방향과 수직인 편광판을 만나면 빛은 가로막힌다. 그렇지 않으면 빛은 통과하면서 진동 방향이 편광판의 방향으로 바뀐다.

여러 편광판이 일렬로 놓여 있고, 각 편광판은 4545도 단위로 조작할 수 있다.

시작점과 끝점이 주어질 때, 시작점에서 쏜 빛이 모든 편광판을 통과하여 끝점에 도달할 수 있는지 구하라.

편광판을 통과하기 전의 빛은 모든 방향으로 진동하고 있다.

입력

첫 줄에 편광판의 개수 NN (2≤N≤200 0002 \leq N \leq 200\,000)과 쿼리의 개수 MM (1≤M≤200 0001 \leq M \leq 200\,000)이 공백으로 구분되어 주어진다.

두 번째 줄에는 편광판의 초기 상태 NN개의 정수 AiA_i (1≤i≤N1 \leq i \leq N; 0≤Ai<80 \leq A_i < 8)가 공백으로 구분되어 주어진다. AiA_i는 ii번째 편광판이 (45×Ai)(45 \times A_i)도 방향임을 의미한다.

다음 MM개의 줄에 걸쳐 쿼리 q_i a_i b_i가 공백으로 구분되어 주어진다. qiq_i는 1 또는 2이다.

qiq_i가 1인 경우, aia_i번째 편광판을 (45×bi)(45 \times b_i)도 방향으로 조작한다. (1≤ai≤N;0≤bi<8)(1 \leq a_i \leq N; 0 \leq b_i < 8)

qiq_i가 2인 경우, aia_i번째 편광판에 빛을 쐈을 때 bib_i번째 편광판을 빛이 통과할 수 있는지 묻는다. (1≤ai<bi≤N)(1 \leq a_i < b_i \leq N)

qi=2q_i = 2인 쿼리는 하나 이상 주어진다.

출력

qi=2q_i = 2인 쿼리에 대해 순서대로, 빛이 통과할 수 있다면 1, 아니면 0을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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