Problem Statement
- B[0] = 0
- B[i] = A[B[i-1]], for every i between 1 and N-1, inclusive.
Below are given all permutations for N=3 with their child arrays. Note that for two of these permutations ({1, 2, 0} and {2, 0, 1}) the child array is also a permutation, so these two permutations are perfect.
Permutation Child array {0, 1, 2} {0, 0, 0} {0, 2, 1} {0, 0, 0} {1, 0, 2} {0, 1, 0} {1, 2, 0} {0, 1, 2} {2, 0, 1} {0, 2, 1} {2, 1, 0} {0, 2, 0}You are given a
Definition
- Class:
- PerfectPermutation
- Method:
- reorder
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int reorder(int[] P)
- (be sure your method is public)
Constraints
- P will contain between 1 and 50 elements, inclusive.
- P will contain each integer between 0 and N-1, inclusive, exactly once, where N is the number of elements in P.
Examples
{2, 0, 1}
Returns: 0
P is a perfect permutation, so we can use the same permutation for Q. The difference is then 0 because P and Q are the same.
{2, 0, 1, 4, 3}
Returns: 2
Q might be {2, 0, 3, 4, 1}.
{2, 3, 0, 1}
Returns: 2
Q might be {1, 3, 0, 2}.
{0, 5, 3, 2, 1, 4}
Returns: 3
{4, 2, 6, 0, 3, 5, 9, 7, 8, 1}
Returns: 5
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49}
Returns: 50
{49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}
Returns: 25
{1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,17,16,19,18,21,20,23,22,25,24,27,26,29,28,31,30,33,32,35,34,37,36,39,38,41,40,43,42,45,44,47,46,49,48}
Returns: 25
{0,6,7,4,8,3,1,2,5}
Returns: 4
{10,7,15,6,3,16,12,9,8,0,4,2,13,14,17,5,11,1}
Returns: 3
{10,7,22,14,13,16,12,6,18,23,9,15,4,5,17,3,2,1,0,11,19,8,20,21}
Returns: 2
{20,24,28,4,25,8,14,2,3,21,29,5,23,17,26,7,10,1,18,22,11,6,9,19,12,27,16,15,0,30,13}
Returns: 3
{23,24,32,36,43,13,16,25,27,5,4,26,8,1,10,22,42,21,14,34,0,6,20,33,41,17,7,29,2,18,28,37,35,31,11,30,3,12,38,9,39,19,40,15}
Returns: 5
{9,16,17,14,21,3,15,1,5,10,11,8,6,22,7,19,12,4,0,13,20,18,2}
Returns: 2
{1,17,24,19,35,10,25,21,16,15,2,13,12,5,26,20,22,36,27,3,28,31,8,18,37,7,4,30,34,33,29,0,32,11,6,9,14,23}
Returns: 6
{20,26,30,0,12,21,2,5,4,14,6,3,31,18,22,25,1,23,15,24,11,8,9,10,19,7,16,29,17,27,28,13}
Returns: 7
{12,39,26,30,3,18,36,15,20,17,38,24,8,43,25,23,31,6,29,10,4,27,32,34,0,45,42,28,33,41,16,9,22,7,40,11,14,13,21,19,2,35,44,1,37,5}
Returns: 3
{15,23,26,24,3,0,21,2,28,12,7,16,11,25,19,13,17,22,9,14,27,8,18,4,1,5,20,10,6}
Returns: 6
{33,35,3,4,0,34,25,24,12,37,32,14,26,8,31,19,21,11,29,1,15,22,18,16,10,13,9,28,7,2,30,17,36,27,23,6,20,5}
Returns: 3
{10,9,3,6,12,11,13,2,5,0,4,8,1,7}
Returns: 3
{8,7,0,26,30,22,9,15,23,25,6,2,17,13,21,10,18,16,14,3,29,27,1,19,24,28,4,11,5,20,12,31}
Returns: 6
{34,24,1,20,35,19,40,32,36,23,13,31,6,9,27,21,33,16,17,37,7,4,10,0,2,22,30,26,15,12,5,14,3,41,11,18,29,8,38,39,25,28}
Returns: 6
{6,44,34,19,26,17,7,13,27,5,10,33,22,8,37,39,3,16,32,21,14,25,42,36,2,31,38,43,12,15,28,20,18,9,11,4,40,35,1,23,24,30,41,29,0}
Returns: 4
{1,32,47,38,29,22,5,24,31,9,23,11,33,16,10,34,27,44,17,45,13,3,2,15,43,12,0,14,20,19,7,40,4,8,48,30,49,37,35,42,39,28,26,36,18,21,41,25,6,46}
Returns: 5
{10,16,24,13,12,9,20,6,0,8,7,18,4,2,21,11,14,22,25,3,17,15,26,19,1,5,23}
Returns: 2
{4,6,8,3,2,5,1,7,0}
Returns: 5
{31,7,17,18,34,6,37,10,40,8,2,42,24,29,38,22,0,41,16,9,33,23,32,13,3,14,35,43,19,1,15,11,12,25,27,39,30,26,20,21,4,36,28,5}
Returns: 2
{24,25,17,1,3,22,6,20,2,11,16,27,14,7,19,12,29,10,15,0,26,23,8,21,18,9,4,28,13,5}
Returns: 5
{8,10,3,1,9,11,5,13,14,4,17,18,6,15,16,2,7,0,12}
Returns: 3
{10,3,4,15,7,12,9,14,2,11,5,13,0,6,1,8}
Returns: 3
{45,41,1,15,37,7,31,40,32,34,36,26,20,9,25,27,17,11,33,44,30,35,8,13,23,38,28,10,39,24,16,2,42,43,0,6,12,5,21,47,48,19,22,3,46,4,29,18,14}
Returns: 3
{21,25,11,5,9,2,8,1,7,18,28,13,17,23,15,4,20,6,27,12,16,29,14,0,10,24,19,22,26,3}
Returns: 4
{0,9,11,3,6,19,13,15,22,4,20,7,2,12,1,8,10,16,18,14,21,23,5,17}
Returns: 5
{14,3,5,7,1,9,0,11,10,13,8,4,6,12,2}
Returns: 3
{20,19,34,22,39,25,5,7,18,23,4,16,1,17,13,28,29,31,42,35,38,33,24,10,2,36,6,41,3,8,21,9,37,15,26,40,11,30,12,0,14,32,27}
Returns: 3
{11,3,13,12,1,8,0,5,15,6,9,14,4,2,16,7,10}
Returns: 4
{21,17,9,8,29,7,19,13,30,18,2,10,25,14,22,4,3,5,15,28,16,6,26,11,23,27,24,1,20,0,12}
Returns: 0
{3,6,0,7,2,1,5,4}
Returns: 2
{18,30,35,1,29,3,27,7,34,10,28,26,0,2,32,13,22,6,24,37,33,21,20,9,14,4,19,15,5,31,17,38,25,8,11,23,16,36,12}
Returns: 5
{0,9,15,20,11,2,12,17,19,18,3,13,21,10,5,4,14,1,8,6,7,16}
Returns: 2
{7,18,10,6,1,4,13,19,9,11,15,0,3,14,17,12,16,8,5,2}
Returns: 3
{10,27,22,33,37,14,39,15,4,5,0,16,21,34,26,6,2,28,48,30,47,3,32,36,43,23,38,13,8,25,9,1,42,19,35,45,12,20,18,41,29,40,17,31,44,46,7,24,11}
Returns: 3
{22,2,8,18,16,15,5,20,11,0,25,21,17,13,23,7,12,14,10,3,9,1,6,4,24,19}
Returns: 6
{36,1,34,32,13,16,24,10,25,27,9,17,30,3,12,15,7,31,21,28,33,5,8,6,4,22,20,14,18,38,37,11,35,0,2,29,26,19,23}
Returns: 8
{4,2,5,1,0,3}
Returns: 2
{8,14,0,6,4,7,17,5,11,13,10,9,12,3,2,1,15,16}
Returns: 5
{13,3,5,20,0,12,14,9,8,4,1,19,11,2,10,6,16,7,18,15,17}
Returns: 4
{8,3,7,0,6,9,4,1,2,5}
Returns: 3
{7,3,5,9,1,0,2,8,6,13,12,11,10,15,14,16,4}
Returns: 5
{11,22,7,16,13,3,4,19,5,12,14,15,17,1,8,2,6,21,0,18,9,23,10,20}
Returns: 3
{3,4,2,0,1}
Returns: 3
{8,6,13,4,1,14,10,0,16,5,12,7,3,9,11,15,2}
Returns: 3
{5,8,15,0,14,3,13,7,1,2,9,6,10,17,19,18,4,12,11,16}
Returns: 5
{5,12,16,11,14,4,9,10,3,8,2,18,7,1,6,17,13,0,15}
Returns: 2
{6,5,8,2,11,10,14,13,12,7,4,1,9,3,0}
Returns: 3
{3,12,2,0,4,5,9,6,10,7,11,8,1}
Returns: 7
{23,18,37,26,25,16,6,11,36,35,27,43,12,15,14,13,30,24,1,21,20,19,42,0,38,4,3,47,29,48,5,2,22,33,34,9,39,31,17,8,40,45,32,7,44,46,41,10,28,49}
Returns: 25
{10,13,9,3,2,5,24,14,31,4,17,12,35,16,18,15,1,0,7,36,32,25,22,34,6,28,27,26,21,33,20,38,30,29,23,11,19,37,8}
Returns: 18
{7,22,15,24,38,5,13,19,8,4,32,28,17,6,14,18,41,35,2,0,30,21,36,31,3,25,26,27,11,40,20,39,33,10,34,12,1,37,9,23,29,16}
Returns: 22
{17,3,2,22,20,5,16,19,8,21,10,14,9,13,11,6,15,0,18,7,4,12,1}
Returns: 13
{0}
Returns: 0
{0,1}
Returns: 2
{1,0}
Returns: 0
{0,1,2}
Returns: 3
{0,2,1}
Returns: 2
{1,0,2}
Returns: 2
{1,2,0}
Returns: 0
{2,0,1}
Returns: 0
{2,1,0}
Returns: 2
{0}
Returns: 0
{0 }
Returns: 0
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }
Returns: 30
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }
Returns: 50
{49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 0, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }
Returns: 2
{28, 19, 27, 11, 4, 5, 1, 25, 3, 0, 23, 18, 15, 16, 22, 17, 12, 2, 6, 24, 7, 8, 10, 13, 14, 29, 9, 20, 21, 26 }
Returns: 3
{2, 0, 1, 3, 4, 10, 9, 8, 7, 6, 5, 15, 14, 13, 12, 11 }
Returns: 9
{12, 1, 9, 49, 0, 27, 36, 31, 29, 45, 18, 46, 32, 40, 23, 33, 26, 41, 48, 17, 8, 47, 22, 34, 30, 7, 6, 11, 5, 4, 2, 21, 42, 35, 10, 39, 25, 3, 43, 16, 38, 37, 14, 13, 24, 15, 28, 19, 20, 44 }
Returns: 6
{1, 0, 3, 2, 5, 4, 7, 6, 9, 8 }
Returns: 5
{1, 2, 0, 4, 5, 3 }
Returns: 2
{2, 13, 3, 19, 9, 16, 49, 36, 24, 23, 22, 17, 15, 26, 5, 46, 7, 37, 25, 18, 28, 20, 10, 14, 11, 40, 35, 29, 12, 21, 44, 0, 47, 27, 45, 41, 33, 8, 4, 43, 38, 34, 6, 42, 48, 31, 32, 1, 30, 39 }
Returns: 5
{2, 0, 1 }
Returns: 0
{10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Returns: 10
{8, 31, 48, 22, 14, 42, 29, 23, 28, 27, 36, 34, 41, 21, 13, 39, 44, 10, 19, 38, 3, 25, 30, 1, 17, 24, 35, 40, 9, 32, 0, 26, 43, 33, 5, 49, 45, 7, 6, 20, 16, 47, 11, 46, 37, 18, 4, 12, 2, 15 }
Returns: 6
{28, 13, 39, 30, 29, 32, 25, 26, 21, 16, 47, 37, 17, 15, 7, 18, 11, 46, 22, 38, 12, 19, 14, 49, 33, 41, 44, 36, 4, 27, 31, 23, 0, 45, 35, 5, 34, 43, 24, 3, 10, 8, 20, 9, 6, 48, 1, 2, 42, 40 }
Returns: 4