동물들이 원을 이루어 진행 중인 수를 1부터 K만큼 키우며, M을 말한 팀이 지는 게임에서 각 시작 위치마다 어느 팀이 이기는지 구한다.
어려움9게임 이론동적 계획법구현수학아직 제출이 없습니다시간 제한3초메모리 제한512 MB염소와 양은 풀을 뜯을 목초지를 두고 오랫동안 다퉈 왔다. 거친 싸움이 여러 번 이어지자 염소의 우두머리와 양의 우두머리가 만나 평화로운 해결책을 찾기로 했다. 긴 논의 끝에 두 우두머리는 목초지마다 게임을 한 판씩 하고, 이긴 팀이 그 목초지에서 풀을 뜯기로 합의했다.
게임 방법은 다음과 같다. 염소와 양을 합쳐 N마리가 원을 이루어 선다. 어느 자리에 염소가 서고 어느 자리에 양이 설지는 두 우두머리가 미리 정한다. i번 동물(1≤i≤N−1) 다음에는 i+1번 동물이 이어서 말하고, N번 동물 다음에는 1번 동물이 이어서 말한다.
게임을 시작하는 동물은 1 이상 K 이하의 정수 중 하나를 말한다. 바로 앞의 동물이 j를 말했다면 그다음 동물은 j+1 이상 j+K 이하의 정수 중 하나를 말한다. 다시 말해 각 동물은 바로 앞에서 나온 수보다 최소 1, 최대 K만큼 큰 수를 말한다. 어떤 경우에도 M보다 큰 수는 말할 수 없고, M을 말한 동물이 속한 팀이 진다.
모든 동물은 자기 팀이 이기도록 최적으로 행동한다. 각 i(1≤i≤N)에 대해 i번 동물이 게임을 시작하면 어느 팀이 목초지를 차지하는지 구하라.
첫째 줄에 N, M, K가 공백으로 구분되어 주어진다. (1≤N,M,K≤5000)
둘째 줄에 N개의 수가 공백으로 구분되어 주어진다. i번째 수는 i번 동물이 양이면 0, 염소면 1이다.
N개의 수를 공백으로 구분해 한 줄에 출력한다. i번째 수는 i번 동물이 게임을 시작할 때 양이 목초지를 차지하면 0, 염소가 차지하면 1이다.
첫 번째 예제에서 양이 먼저 시작하면 다음과 같이 이길 수 있다. 양이 2를 말하면 염소는 3이나 4를 말할 수 있는데, 어느 쪽이든 양은 5를 말할 수 있다. 이어서 염소는 6이나 7을 말할 수 있고, 어느 쪽이든 양은 8을 말할 수 있다. 그러면 염소는 9밖에 말할 수 없어서 게임과 목초지를 모두 잃는다.