전구 게임

시간 제한1초메모리 제한128 MB

요약
n개의 스위치 조합 중 서로 다른 m개를 골라 XOR 합이 정확히 앞의 v개 전구만 켜지게 하는 경우의 수를 10567201로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
조합론, 수학, 비트 연산
정답자
아직 제출이 없습니다

문제

상근이는 전구 nn개와 스위치 nn개를 가지고 있다. 각 전구는 켜져 있거나 꺼져 있으며, 각 스위치는 하나의 전구에 연결되어 있다. 스위치를 누르면 그 전구의 상태가 반대로 바뀐다. 즉, 켜져 있는 전구의 스위치를 누르면 전구가 꺼지고, 꺼져 있으면 켜진다. 처음에는 모든 전구가 꺼져 있다. 상근이는 이 전구들로 하는 게임을 하나 만들었다.

한 턴은 스위치의 조합을 하나 고른 뒤 그 스위치들을 누르는 것이다. 스위치를 하나도 고르지 않는 경우도 가능한 조합이다. mm번의 턴이 지난 뒤에는 처음 vv개의 전구가 켜져 있고 나머지는 모두 꺼져 있어야 한다. 이 게임에는 제약이 하나 있는데, 같은 조합을 두 번 이상 사용할 수 없다.

이 게임은 매우 쉬워서 이기는 방법이 아주 많다. 상근이는 이기는 방법을 모두 찾으려 한다. 이기는 방법이 모두 몇 가지인지 구하는 프로그램을 작성하시오.

이기는 두 방법 AA와 BB에 대해, AA의 턴 순서를 적절히 바꾸어 BB를 만들 수 있다면 두 방법은 같은 방법이다.

예를 들어 n=4n=4, m=3m=3, v=2v=2인 경우, 첫 턴에 1, 2, 4를, 둘째 턴에 1, 3을, 셋째 턴에 1, 3, 4를 누르면 게임을 이길 수 있다. 이 방법은 첫 턴에 1, 3을, 둘째 턴에 1, 2, 4를, 셋째 턴에 1, 3, 4를 누르는 방법과 같은 방법이다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 그 수는 500개를 넘지 않는다. 각 테스트 케이스는 한 줄로 이루어지고, nn(1≤n≤10001 \le n \le 1000), mm(1≤m≤10001 \le m \le 1000), vv(0≤v≤n0 \le v \le n)이 주어진다. 마지막 줄에는 0 0 0이 주어진다.

출력

각 테스트 케이스에 대해, 게임을 이기는 방법의 수를 1056720110567201로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    3 3 1
    6 4 0
    6 4 3
    0 0 0
    
    예상 출력
    7
    10416
    9920