만드는 중입니다

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

저녁 뭐 먹지?

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

요약
각 친구가 준 두 조건 중 하나는 반드시 만족해야 한다는 조건을 누적하면서, 지금까지의 모든 조건을 동시에 만족하는 메뉴가 있는지 매번 확인합니다.
난이도

보통10점 중 7점

유형
그래프, 분할 정복, 유니온 파인드
정답자
아직 제출이 없습니다

문제

선아와 친구들은 함께 저녁을 먹으러 가는 중이다. 그때 친구 한 명이 금지된 질문을 하고 말았다.

"저녁 뭐 먹지?"

심각할 정도로 우유부단한 선아와 친구들은 저녁 메뉴 결정을 서로 떠넘기게 되었다. 이러다 다 같이 굶겠다는 생각이 든 선아가 다음 방법을 제안했다.

선아를 포함한 NN명의 친구가 있다. 메뉴는 00개 이상의 특징을 가지며, 각 특징은 11 이상 100 000100\,000 이하인 정수로 표현된다. 한양대학교 근처에는 식당이 굉장히 많아서, 가능한 모든 특징의 조합마다 정확히 그 조합을 가진 메뉴가 존재한다. 각 친구는 11번부터 NN번까지 순서대로 다음 두 가지 행동 중 하나를 수행한다.

  • 1 aa bb: 저녁 메뉴에 대한 의견으로 두 정수 aa와 bb를 제시한다. 각 의견은 절댓값이 11 이상 100 000100\,000 이하인 정수이며, 이 절댓값이 메뉴의 특징을 나타낸다. 값이 양수이면 그 특징을 가져야 하고, 음수이면 그 특징을 가지면 안 된다.
  • 2: 지금까지 의견을 제시한 친구들을 모두 만족시키는 메뉴가 존재하는지 확인하고 결과를 알려준다. 어떤 친구를 만족시키려면 그 친구가 제시한 두 의견 중 최소 하나가 메뉴에 반영되어야 한다.

선아와 친구들의 행동이 주어질 때, 행동 2의 결과를 출력하는 프로그램을 작성하라.

입력

첫 번째 줄에 선아를 포함한 친구의 수 NN이 주어진다. (1≤N≤200 0001 \le N \le 200\,000)

두 번째 줄부터 NN개의 줄에 걸쳐 11번 친구부터 NN번 친구까지 순서대로 각 친구의 행동 정보가 한 줄에 하나씩 주어진다. 행동 1인 경우 공백으로 구분된 세 정수 11, aa, bb가 주어진다. 행동 2인 경우 정수 2 하나만 주어진다. 행동 2는 적어도 한 번은 주어진다. (1≤∣a∣,∣b∣≤100 0001 \le |a|, |b| \le 100\,000)

출력

행동 2가 입력될 때마다, 그 시점까지 의견을 제시한 친구들을 모두 만족시키는 메뉴가 존재하면 YES DINNER를, 존재하지 않으면 NO DINNER를 출력한다.

예제3

  1. 예제 1

    입력
    5
    1 -1 2
    1 -2 3
    1 1 3
    1 3 2
    2
    
    예상 출력
    YES DINNER
    
  2. 예제 2

    입력
    4
    1 1 1
    2
    1 -1 -1
    2
    
    예상 출력
    YES DINNER
    NO DINNER
    
  3. 예제 3

    입력
    1
    2
    
    예상 출력
    YES DINNER