줄무늬 게임
시간 제한3초메모리 제한512 MB
막대 길이 c, z, n이 주어질 때 각 판 길이 p에서 선수가 이기는지 판정한다.
문제
줄무늬 게임은 두 사람이 하는 게임이다. 게임을 하려면 판 하나와 빨강, 초록, 파랑 세 가지 색의 직사각형 띠가 필요하다. 빨간 띠의 크기는 모두 , 초록 띠는 , 파란 띠는 이며, , , 은 양의 정수이다. 각 플레이어는 색깔마다 띠를 무한히 많이 가지고 있다.
게임 판은 크기의 직사각형으로, 크기의 칸 개로 이루어져 있다.
두 플레이어는 번갈아 가며 수를 둔다. 한 번의 수는 아무 색 띠 하나를 판 위에 올려놓는 것이며, 다음 규칙을 지켜야 한다.
- 띠는 판 밖으로 삐져나올 수 없다.
- 앞서 놓인 띠를 조금이라도 덮을 수 없다.
- 띠의 양 끝은 판의 칸 경계선과 정확히 맞아야 한다.
규칙에 맞는 수를 더 이상 둘 수 없는 플레이어가 진다. 먼저 두는 사람을 첫 번째 플레이어라 한다. 두 번째 플레이어가 어떻게 두든 첫 번째 플레이어가 항상 이길 수 있으면, 첫 번째 플레이어에게 필승 전략이 있다고 한다.
띠의 크기와 하나 이상의 판 길이를 입력받아, 각 판마다 첫 번째 플레이어에게 필승 전략이 있는지 판정하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 , , ()이 공백 하나로 구분되어 주어진다. 각각 빨강, 초록, 파랑 띠의 길이이다.
둘째 줄에는 고려할 판의 개수 ()이 주어진다.
이어지는 개의 줄에는 각 줄마다 판의 길이 ()가 하나씩 주어진다.
출력
개의 줄을 출력한다. 번째 줄에는 정수 하나를 출력한다.
- 번째 판에서 첫 번째 플레이어에게 필승 전략이 있으면 ,
- 그렇지 않으면 .