S-님
시간 제한1초메모리 제한128 MB
이동 집합 S가 주어질 때 각 S-Nim 위치가 이기는 위치인지 지는 위치인지 그런디 수를 구해 각 더미의 XOR로 판정한다.
문제
아서(Arthur)와 여동생 캐롤(Caroll)은 오래전부터 님(Nim)이라는 게임을 즐겨 한다. 님은 다음과 같이 진행된다.
- 시작 위치에는 여러 개의 더미가 있고, 각 더미에는 (서로 같을 필요는 없는) 어떤 개수의 구슬이 들어 있다.
- 두 사람은 번갈아 가며 더미 하나를 골라 그 더미에서 양의 정수 개의 구슬을 제거한다.
- 더 이상 수를 둘 수 없는 사람이 진다.
두 사람은 이 단순한 게임을 즐기다가, 항상 최선의 수를 찾는 쉬운 방법을 알게 되었다.
- 현재 위치에서 모든 더미의 구슬 개수를 XOR 한다. (예를 들어 더미가 이면 이므로 XOR 합은 이다.)
- XOR 합이 이면 안타깝지만 당신은 진다.
- 그렇지 않으면 XOR 합이 이 되도록 수를 두면 된다. 이런 수는 항상 존재한다.
이 전략이 옳다는 것은 다음 사실들로 확인할 수 있다.
- 마지막 구슬을 가져가는 사람이 이긴다.
- 이긴 사람의 마지막 수 직후 XOR 합은 이다.
- 수를 둘 때마다 XOR 합은 반드시 바뀐다.
즉, 당신이 수를 둔 뒤 XOR 합이 항상 이 되도록 유지하면 상대는 결코 이길 수 없고, 따라서 당신이 이긴다.
두 사람 모두 완벽하게 두는 방법을 알고 나니 게임이 시시해졌다. 그래서 이들은 비슷하지만 다른 게임인 S-님(S-Nim)을 고안했다. 이 게임에서는 미리 정해진 집합 에 속한 개수만큼만 구슬을 제거할 수 있다. 예를 들어 이면 각 플레이어는 한 번에 구슬을 개 또는 개만 제거할 수 있다. 이제는 XOR 합을 항상 으로 만들 수 있는 것은 아니므로 위 전략을 그대로 쓸 수 없다. 정말 그럴까?
당신이 할 일은 주어진 S-님 위치가 지는 위치인지 이기는 위치인지 판정하는 프로그램을 작성하는 것이다. 어떤 위치에서 지는 위치로 가는 수가 하나라도 있으면 그 위치는 이기는 위치이다. 지는 위치로 가는 수가 하나도 없으면 그 위치는 지는 위치이다. 따라서 (예상대로) 둘 수 있는 수가 전혀 없는 위치는 지는 위치이다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스는 다음과 같이 주어진다. 첫 번째 줄에는 집합 의 크기를 나타내는 정수 ()가 주어지고, 이어서 를 이루는 개의 정수 ()가 주어진다. 두 번째 줄에는 판정할 위치의 개수 ()이 주어진다. 그다음 개의 줄에는 각각 더미의 개수 ()과, 각 더미에 든 구슬 수를 나타내는 개의 정수 ()가 주어진다.
마지막 테스트 케이스 다음에는 이 한 줄에 홀로 주어진다.
출력
각 위치에 대해 다음과 같이 출력한다.
- 그 위치가 이기는 위치이면
W를, 지는 위치이면L을 출력한다. - 한 테스트 케이스의 모든 위치를 처리한 뒤에는 줄바꿈을 출력한다.
즉, 같은 테스트 케이스에 속한 위치들의 결과는 한 줄에 이어 붙여 출력하고, 테스트 케이스가 끝날 때마다 줄을 바꾼다.