안티챔버
시간 제한5초메모리 제한1024 MB
칸을 색칠할 때마다 떨어져 나간 조각을 지우고 구멍을 메우는 격자에서, 같은 성분인지와 성분 크기를 온라인으로 답합니다.
문제
게임은 무한한 격자판에서 진행된다. 각 칸은 흰색 또는 검은색이다. 변을 공유하는 두 칸을 인접하다고 한다. 연결된 검은 칸들의 극대 집합을 컴포넌트라고 한다. 컴포넌트의 크기는 그 안에 있는 칸의 개수다.
브릭 도구를 쓰면 플레이어가 임의의 칸을 반대 색으로 칠할 수 있다. 칠한 직후에 다음 검사가 실행되며, 격자판의 상태가 바뀔 수 있다.
칸을 흰색으로 칠했고 컴포넌트 개수가 늘었다면, 어떤 컴포넌트가 여러 부분 컴포넌트로 나뉜 것이다. 이때 새로 생긴 부분 컴포넌트는 가장 큰 것 하나를 제외하고 모두 제거된다. 가장 큰 부분 컴포넌트는 크기가 나머지 부분 컴포넌트 크기의 합보다 엄격하게 클 때에만 남는다. 컴포넌트를 제거한다는 것은 그 안의 모든 칸을 흰색으로 칠한다는 뜻이다.
다음으로, 칠한 칸의 색과 관계없이 컴포넌트의 구멍을 없앤다. 검은 칸들로 이루어진 사이클 안에 흰 칸이 있으면 그 칸을 검은색으로 바꾼다. 사이클에서 이웃한 두 칸은 위에서 정의한 인접 관계를 만족해야 한다.
처음에는 모든 칸이 흰색이다. 주어진 순서대로 실행해야 하는 연산 목록이 주어진다. 연산은 칠하기 또는 질의 중 하나다. 질의는 두 종류다. Comp 질의는 주어진 두 칸이 모두 검은색이고 같은 컴포넌트에 속하는지 묻는다. Size 질의는 주어진 칸이 속한 컴포넌트의 크기를 구한다. 그 칸이 흰색이면 답은 0이다.
입력
첫 줄에 정수 이 주어진다. 이는 칠하기와 질의의 총 개수이며 이다. 이어지는 개의 줄에 연산이 하나씩 주어진다.
Draw: 좌표 의 칸을 반대 색으로 칠한다.Size: 좌표 의 칸이 속한 컴포넌트의 크기를 구한다.Comp: 좌표 과 의 칸이 같은 컴포넌트에 속하는지 구한다.
모든 좌표는 이하의 양의 정수다.
출력
질의의 답을 입력에 나온 순서대로 한 줄에 하나씩 출력한다. Size 질의의 답은 정수다. Comp 질의의 답은 YES 또는 NO다.
힌트
아래 그림의 숫자는 브릭 도구를 사용한 횟수다.



