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

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

선형대수학

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

요약
2차원 벡터를 집합에 넣거나 빼며, 각 벡터에 0 이상 1 이하의 계수를 곱해 더한 값이 (a, b)가 되는지 판정합니다.
난이도

어려움10점 중 9점

유형
기하, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

홍윤이는 경기과학고등학교에서 학생들에게 선형대수학을 강의하고 있다. 여느 때와 같이 기말고사 기간이 찾아왔다. 평균 점수가 37점에 그쳤던 중간고사 이후, 학생들은 모두 홍윤이의 기말고사 문제를 두려워하고 있다.

시험이 얼마 남지 않은 어느 날, 학생들에게 자습 시간을 준 홍윤이는 어제 풀던 Ruby 3 문제를 고민하고 있었다. 그때 학생들이 시험 시간에 단답형 문제를 각자 하나씩 풀어 답을 은밀히 공유하기로 약속했다는 사실을 듣게 된다. 믿었던 학생들에게 배신감을 느낀 홍윤이는 학생마다 다른 단답형 문제를 출제하기로 결심한다.

1번 문제는 다음과 같다.

변수가 x1,x2,⋯ ,xkx_1, x_2, \cdots, x_k로 총 kk개이고 식이 2개인 다음 연립방정식의 해가 존재하는지 판별하시오.

P1x1+P2x2+⋯+Pkxk=AP_1 x_1 + P_2 x_2 + \cdots + P_k x_k = A

Q1x1+Q2x2+⋯+Qkxk=BQ_1 x_1 + Q_2 x_2 + \cdots + Q_k x_k = B

단, 0≤x1,x2,⋯ ,xk≤10 \le x_1, x_2, \cdots, x_k \le 1을 만족한다.

학생별로 PiP_i와 QiQ_i를 따로 정한 뒤 답까지 계산하는 일은 번거로웠다. 그래서 홍윤이는 방금 만든 시험지에 새로운 순서쌍 (Pi,Qi)(P_i, Q_i)를 하나 추가하거나, 이미 있는 순서쌍을 하나 제거하는 방식으로 문제를 만들려 한다. 홍윤이가 Ruby 3 문제의 풀이를 구현하러 간 동안, 시험 문제 출제를 도와주자.

홍윤이의 노트에는 출제에 쓰려는 순서쌍 (Ui,Vi)(U_i, V_i)가 NN개 적혀 있다. 또 어떤 순서쌍을 추가하고 삭제할지, 현재 상태의 시험지를 언제 출제할지 계획한 길이 QQ의 쿼리가 적혀 있다. 쿼리를 수행하기 전의 문제에는 순서쌍이 하나도 없으며, 이때 k=0k=0이다.

쿼리는 두 종류다.

  • 11 aa bb: A=aA=a, B=bB=b로 설정한 뒤 현재 상태의 연립방정식에 대한 답을 계산한다. 모든 1≤i≤k1 \le i \le k에 대해 0≤xi≤10 \le x_i \le 1을 만족하는 해가 있으면 YES, 없으면 NO를 출력한다. k=0k=0일 때는 이 쿼리가 주어지지 않는다.
  • 22 cc: 현재 문제에 cc번째 순서쌍 (Uc,Vc)(U_c, V_c)이 없으면 추가하고, 있으면 제거한다.

입력

첫 줄에 NN과 QQ가 주어진다. (1≤N,Q≤300,0001 \le N, Q \le 300,000)

다음 NN개의 줄에 순서쌍 (Ui,Vi)(U_i, V_i)가 공백으로 구분되어 주어진다. (−109≤Ui,Vi≤109-10^9 \le U_i, V_i \le 10^9)

다음 QQ개의 줄에 "1 a b" 또는 "2 c" 형식의 쿼리가 주어진다. (−1015≤a,b≤1015-10^{15} \le a, b \le 10^{15}, 1≤c≤N1 \le c \le N)

출력

1번 쿼리마다 답을 YES 또는 NO로, 한 줄에 하나씩 주어진 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    5 11
    -3 -2
    -1 -5
    3 4
    0 6
    2 0
    2 2
    1 0 -1
    2 1
    1 -3 -5
    1 0 1
    2 1
    1 -9 3
    2 4
    1 2 4
    2 3
    1 3 5
    
    예상 출력
    NO
    YES
    NO
    NO
    NO
    YES