Zookeeper
Prime Ring Problem Time Limit: 10 Seconds Memory Limit: 32768 KB
A ring is compose of n circles as shown in digoal. put natural number 1, 2 ,..., n into each circle separately, and the sum of numbers in two adjacent circles shoshould be a prime.
Note: the number of first circle shoshould always be 1.
Input
N (0 <n <20)
Output
The output format is shown as sample below. each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. the order of numbers must satisfy the above requirements. print solutions in lexicographical order.
You are to write a program that completes abve process.
Print a blank line after each case.
Sample Input
6
8
Sample Output
Case 1:
1 4 3 2 5 6
1 6 5 2 3 4
Case 2:
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2
# Include
# Include
# Include
# Include
Using namespace std; int n, test = 0; int cir [30]; int vis [30]; int prime [50] = {0}; void dfs (int k) {if (k = n) {if (! Prime [cir [k] + cir [1]) return; for (int I = 1; I