색 뒤집어 칠하기
시간 제한1초메모리 제한128 MB
각 사각형을 일정한 비율 h:v로 나누고 오른쪽 위와 왼쪽 아래 부분의 색을 뒤집는 과정을 반복할 때, 주어진 점의 색을 판정한다.
문제
변이 축과 축에 평행하고 왼쪽 아래 꼭짓점이 에 있는 직사각형을 색칠한다. 이 직사각형은 해상도가 거의 무한한 화면이라고 생각할 수 있으며, 처음에는 전체가 검은색이다. 두 실수 과 이 주어지면 다음 과정을 수행한다.
- 직사각형의 가로 변을 왼쪽에서부터 의 비율로 나누는 수직선을 긋는다.
- 직사각형의 세로 변을 아래에서부터 의 비율로 나누는 수평선을 긋는다.
- 이 두 선은 직사각형을 네 개의 작은 직사각형으로 나눈다.
- 왼쪽 위와 오른쪽 아래 직사각형은 색을 그대로 유지한다.
- 나머지 두 직사각형(오른쪽 위와 왼쪽 아래)은 색을 반전시키고(검은색 ↔ 흰색), 각각에 대해 방금 큰 직사각형에 적용한 것과 똑같은 과정을 다시 적용한다.
- 이 과정은 (원칙적으로) 영원히 반복된다.
색칠 과정에서 나타나는 어떤 직사각형의 경계에도 놓이지 않는 점 하나가 주어졌을 때, 그 점의 색을 구하여라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 케이스의 첫 줄에는 네 실수, 즉 직사각형의 가로 길이 , 세로 길이 , 그리고 비율 와 가 주어진다(). 따라서 직사각형은 영역을 차지한다. 다음 줄에는 살펴볼 점의 개수인 정수 이 주어진다. 이어지는 개의 줄에는 각각 한 점의 좌표와 좌표가 주어진다. 입력의 끝은 네 값이 모두 인 줄(0 0 0 0)로 표시되며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스에 대해 먼저 Case k: 형태의 줄을 출력한다(는 부터 시작하는 케이스 번호). 그 다음, 입력으로 주어진 각 점에 대해 그 점의 색을 black 또는 white로 한 줄에 하나씩 출력한다.