아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

줄무늬 게임

시간 제한3초메모리 제한512 MB

요약
막대 길이 c, z, n이 주어질 때 각 판 길이 p에서 선수가 이기는지 판정한다.
난이도

보통10점 중 7점

유형
게임 이론, 동적 계획법
정답자
아직 제출이 없습니다

문제

줄무늬 게임은 두 사람이 하는 게임이다. 게임을 하려면 판 하나와 빨강, 초록, 파랑 세 가지 색의 직사각형 띠가 필요하다. 빨간 띠의 크기는 모두 c×1c \times 1, 초록 띠는 z×1z \times 1, 파란 띠는 n×1n \times 1이며, cc, zz, nn은 양의 정수이다. 각 플레이어는 색깔마다 띠를 무한히 많이 가지고 있다.

게임 판은 p×1p \times 1 크기의 직사각형으로, 1×11 \times 1 크기의 칸 pp개로 이루어져 있다.

두 플레이어는 번갈아 가며 수를 둔다. 한 번의 수는 아무 색 띠 하나를 판 위에 올려놓는 것이며, 다음 규칙을 지켜야 한다.

  • 띠는 판 밖으로 삐져나올 수 없다.
  • 앞서 놓인 띠를 조금이라도 덮을 수 없다.
  • 띠의 양 끝은 판의 칸 경계선과 정확히 맞아야 한다.

규칙에 맞는 수를 더 이상 둘 수 없는 플레이어가 진다. 먼저 두는 사람을 첫 번째 플레이어라 한다. 두 번째 플레이어가 어떻게 두든 첫 번째 플레이어가 항상 이길 수 있으면, 첫 번째 플레이어에게 필승 전략이 있다고 한다.

띠의 크기와 하나 이상의 판 길이를 입력받아, 각 판마다 첫 번째 플레이어에게 필승 전략이 있는지 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 cc, zz, nn (1≤c,z,n≤10001 \le c, z, n \le 1000)이 공백 하나로 구분되어 주어진다. 각각 빨강, 초록, 파랑 띠의 길이이다.

둘째 줄에는 고려할 판의 개수 mm (1≤m≤10001 \le m \le 1000)이 주어진다.

이어지는 mm개의 줄에는 각 줄마다 판의 길이 pp (1≤p<10001 \le p < 1000)가 하나씩 주어진다.

출력

mm개의 줄을 출력한다. ii번째 줄에는 정수 하나를 출력한다.

  • ii번째 판에서 첫 번째 플레이어에게 필승 전략이 있으면 11,
  • 그렇지 않으면 22.

예제1

  1. 예제 1

    입력
    1 5 1
    3
    1
    5
    6
    
    예상 출력
    1
    1
    2