2979 : 체스 룩(TOPOVI)
- 제한시간
- 2000 ms
- 메모리제한
- 64 MB
- 해결횟수
- 1 회
- 시도횟수
- 3 회
문제
정현이는 체스와 프로그래밍을 매우 좋아한다. 하지만 전통적인 체스에 싫증이 나서 새로운 체스게임을 고안했다.
정현이의 체스 게임은 룩(Rook)말들을 이용하는 것으로 아래와 같은 규칙을 갖는다.
1. N * N 체스 판에 K개의 룩(Rook)을 놓는다.
2. 각각의 룩은 정수단위의 힘을 갖고 있다.
3. x행 y열 필드(체스 판의 모든 셀들을 필드라고 부른다.) 에 어떤 룩(Rook)이 위치해 있을 경우
그 룩은 x행 전체와 y열 전체를 볼 수 있다. 단, 자신이 위치한 필드를 볼 수는 없다.
4. 어떤 필드가 그 필드를 볼 수 있는 모든 룩(Rook)들의 힘값들을 모두 XOR연산 값이 0초과이면 점유되었다고 말한다.
< XOR 연산>
XOR 연산은 비트연산자 중 하나로서 각각을 이진수로 바꾼 후 같은 자리의 비트가 같으면
그 자리의 XOR연산 결과 값은 0이 되고 다르면 1이 된다.
정수 10과 3을 XOR연산한 결과를 보자. 먼저 각각을 이진수로 바꾸어 4자리로 나타내면
10 => 1010
3 => 0011 이 되고 결과 값은
1001 이 되어 10진 정수로 나타내면 9가 된다.
초기에 정현이는 룩(Rook)들을 체스 판에 배치한다. 그리고 P번 이동시킨다.
각각의 이동 후에 점유되는 필드는 얼마나 될까? 모든 룩(Rook)은 비어있는 임의의 필드로 이동될 수 있다.
입력형식
출력형식
입력 예2 2 2 1 1 1 2 2 1 2 2 2 1 1 1 1 2 |
출력 예4 0 |
입력 예2 2 2 1 1 1 2 2 2 2 2 2 1 1 1 1 2 |
출력 예4 2 |
입력 예3 3 4 1 1 1 2 2 2 2 3 3 2 3 3 3 3 3 3 1 1 1 1 2 3 1 3 2 |
출력 예6 7 7 9 |