숫자 할당
시간 제한0.1초메모리 제한2048 MB
격자의 여덟 합이 주어질 때, 남은 칸에 1부터 13을 넣어 모든 합을 만족시키는 경우의 수를 센다.
문제

위 그림과 같이 크기의 총 칸으로 이루어진 격자판이 주어져 있다. 편의상 맨 왼쪽 위칸의 좌표를 이라 하고 맨 오른쪽 아래 칸의 좌표를 라 하자. 초기에 , , , 에는 이 채워져 있고, 행의 모든 칸과 열의 모든 칸은 미리 어떤 숫자(정수)들이 채워져 있다. 즉, 부터 까지는 미리 채워진 숫자들이다. 이제 나머지 빈 칸들에 부터 까지의 서로 다른 수들을 채워야한다. 즉, 부터 까지는 부터 까지의 서로 다른 숫자이다. 이때, 각 숫자들 사이에는 다음과 같은 규칙이 성립해야 한다.
즉, 을 제외하고, 첫 번째 행의 각 칸에 있는 수들은 같은 열에 있는 수들의 합이며, 첫 번째 열의 각 칸에 있는 수들은 같은 행에 있는 수들의 합이다.
예를 들어, 부터 까지의 숫자가 오른쪽 그림과 같이 주어졌다고 하자. 만약 부터 까지의 숫자를 그림과 같이 할당하면 위의 규칙이 만족된다. 하지만 만약 부터 까지의 숫자가 로 주어졌다면 위의 규칙을 만족하도록 부터 까지에 할당할 수 있는 방법이 없다.
부터 까지 개의 숫자가 주어졌을 때, 위의 규칙이 만족되도록 부터 까지의 서로 다른 숫자를 부터 까지에 할당하는 모든 경우의 수를 출력하는 프로그램을 작성하시오.
입력
입력은 표준입력을 사용한다. 정수 의 값이 한 줄에 차례로 주어진다. 각 정수는 이상 이하이다.
출력
출력은 표준출력을 사용한다. 부터 까지의 서로 다른 개의 정수를 부터 까지에 할당할 수 있는 모든 경우의 수를 한 줄에 출력한다.