젠가 형태의 탑에서 블록을 순서대로 빼면서, 지지하는 층 블록들의 볼록 껍질 밖으로 무게 중심이 나가는 순간 탑이 무너지는지와 몇 번째 제거에서 무너지는지를 구한다.
어려움8기하시뮬레이션누적 합구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB제인은 게임 디자이너이고 젠가 붐의 다음 버전을 설계하고 있다. 이 버전의 블록은 보통의 1×2×6이 아니라 1×w×nw 크기이다. 게임을 시작할 때 타워를 쌓는다. 한 층은 블록 n개를 긴 변끼리 맞대어 나란히 놓아 만들고, 각 층은 바로 아래 층과 직각이 되게 얹는다. 플레이어는 차례대로 블록을 하나씩 빼내고, 타워가 무너지면 게임이 끝난다.

처음 타워

무너지기 직전의 타워
제인은 n과 w를 고르는 데 쓸 시뮬레이터를 만들려고 한다. 시뮬레이터는 정해진 순서대로 블록을 뺐을 때 타워가 언제 무너지는지 계산한다.
좌표는 다음과 같이 정한다. 바닥은 xy 평면이고, l번째 층은 l−1≤z≤l인 부분을 차지한다. 한 층의 밑면은 한 변이 nw인 정사각형 [0,nw]×[0,nw]이다. 홀수 번째 층에서는 블록의 긴 변이 y축과 나란하고, k번째 블록이 [(k−1)w,kw]×[0,nw]를 차지한다. 짝수 번째 층에서는 블록의 긴 변이 x축과 나란하고, k번째 블록이 [0,nw]×[(k−1)w,kw]를 차지한다. 블록은 모두 재질이 같고 무게도 같다.
i번째 층과 i+1번째 층 사이의 단면을 보자. i+1번째 층부터 h번째 층까지 남은 블록이 하나라도 있으면, 그 블록 전체의 질량 중심을 xy 평면에 내린 점을 C, i번째 층에 남은 블록을 xy 평면에 내린 도형의 볼록 껍질을 H라고 하자. C가 H 바깥에 있거나 H의 경계 위에 있으면 타워가 무너진다. i번째 층이 비어 있으면 H도 비어 있으므로, 그 위에 블록이 남아 있는 한 타워가 무너진다. 1≤i≤h−1인 단면 가운데 하나라도 이 조건에 걸리면, 타워는 그 블록을 빼낸 직후에 무너진다.
첫째 줄에 블록의 크기를 정하는 두 정수 n과 w가 주어진다 (1≤n,w≤10000). 둘째 줄에 타워의 층 수 h와 빼내는 블록의 개수 m이 주어진다 (1≤h,m≤5000).
다음 m개 줄에는 빼내는 블록이 순서대로 주어진다. 각 줄에는 정수 li와 ki가 주어지고, li는 아래에서 센 층 번호, ki는 그 층 안에서 블록의 위치이다 (1≤li≤h, 1≤ki≤n). 같은 블록을 두 번 빼내지는 않는다.
타워가 무너지면 첫째 줄에 yes를, 무너지지 않으면 no를 출력한다. 무너지는 경우 둘째 줄에 타워를 무너뜨린 블록이 몇 번째로 빼낸 블록인지 출력한다. 번호는 1부터 센다. 타워가 무너진 뒤에 남은 입력은 무시한다.