#NOVICE65. Derangements HARD
Derangements HARD
A derangement of n numbers is a permutation of those numbers in which none of the numbers appears in its original place. For example, the numbers {1, 2, 3} can be deranged into {2, 3, 1} and {3, 1, 2}. We can modify this slightly for n numbers that are not necessarily distinct by saying that no number in the derangement can be in the place that a number of the same value was in in the original ordering. So the numbers {1, 1, 2, 2, 3} could be deranged into {2, 2, 1, 3, 1}, {2, 2, 3, 1, 1}, {2, 3, 1, 1, 2}, and {3, 2, 1, 1, 2}.
Input
First line contains T (1 <= T <= 100) the number of test cases. Each test case contains two lines. First line contains an integer N (1 <= N <= 15) denoting total number of elements in the array. Second line contains a space separated list of N integers Ai such that 0 <= Ai < N.
Output
For each test case output an integer, the total number of derangements of the array.
Example
Input: 2 5 1 1 2 2 3 6 0 0 0 1 1 1</p>Output: 4 1