개발자 크루
취미로 코딩하는 RecurDyn 개발자 모임
Lv.5
[한양대 HCPC 2023] 저녁 뭐 먹지?
- 난이도
- 5 단계
- 참가자
- 0 명
- 제출
- 0 명
- 정답률
- 0.00 %
언어별 시간/메모리
언어 | 시간 | 메모리 |
---|---|---|
C++ | 3초 | 1024MB |
JavaScript | 10초 | 1024MB |
C | 3초 | 1024MB |
Java | 6초 | 1024MB |
Python | 10초 | 2048MB |
선아와 친구들은 함께 저녁을 먹으러 가고 있다. 그때 친구 중 한 명이 금지된 질문을 해버리고 말았다.
“저녁 뭐 먹지?”
심각할 정도로 우유부단한 선아와 친구들은 저녁 메뉴 결정을 서로 떠넘기게 되었다. 이러다 다 같이 굶겠다는 생각이 든 선아는 다음 방법을 제안했다.
선아를 포함한 N명의 친구들이 있다. 메뉴는 0개 이상의 특징을 가지며, 각 특징은 1 이상 100,000 이하인 정수로 표현된다. 또한 한양대학교 근처에는 식당이 굉장히 많아서 가능한 모든 특징의 조합에 대해 정확히 그 조합을 가진 메뉴가 존재한다. 이제 각 친구는 1번부터 N번까지 순서대로 다음 두 가지 행동 중 하나를 수행한다.
- 1 a b
: 저녁 메뉴에 대한 의견을 나타내는 두 정수 a와 b를 제시한다. 각 의견은 절댓값이 1 이상 100,000 이하인 정수이며, 이 정수의 절댓값은 메뉴의 특징을 나타낸다. 이 정수가 양수인 경우 그 특징을 가져야 함을, 음수인 경우 그 특징을 가지면 안 됨을 의미한다.
- 2
: 현재까지 의견을 제시한 친구들을 모두 만족시키는 메뉴가 존재하는지 확인한 후 결과를 알려준다. 어떤 친구를 만족시키기 위해선 그 친구가 제시한 두 의견 중 최소 하나가 메뉴에 반영되어야 한다.
선아와 친구들의 행동이 주어질 때 2번 행동의 결과를 출력하는 프로그램을 작성해 보자.
제약조건
1 ≤ N ≤ 200,000
1 ≤ |a|, |b| ≤ 100,000
입력형식
첫 번째 줄에 선아를 포함한 친구의 수 N이 주어진다.
두 번째 줄부터 N개의 줄에 걸쳐 1번 친구부터 N번 친구까지 순서대로 각 친구의 행동에 대한 정보가 한 줄에 하나씩 주어진다. 1번 행동인 경우 세 정수 1, a, b가 공백으로 구분되어 주어진다. 2번 행동인 경우 정수 2 하나만 주어진다. 2번 행동은 적어도 한 번은 주어진다.
출력형식
2번 행동이 입력으로 들어올 때마다 그 시점까지 의견을 제시한 친구들을 모두 만족시키는 메뉴가 존재한다면 YES DINNER
를, 존재하지 않는다면 NO DINNER
를 출력한다.
입력예제1
5 1 -1 2 1 -2 3 1 1 3 1 3 2 2
출력예제1
YES DINNER
입력예제2
4 1 1 1 2 1 -1 -1 2
출력예제2
YES DINNER NO DINNER
입력예제3
1 2
출력예제3
YES DINNER