Problem Statement
Nam has a permutation P = { P[1], P[2], ..., P[N] } of integers from 1 to N, inclusive.
For any such permutation we can define the following values:
- pmin(k, i) is the minimum of k consecutive elements, starting at index i
- f(k) is the maximum of pmin(k, i) over all valid choices of k consecutive elements
Formally:
- for each k and i such that 1 <= k <= N and 1 <= i <= N-k+1: pmin(k, i) = min{ P[i], P[i+1], ..., P[i+k-1] }
- f(k) = max{ pmin(k, 1), pmin(k, 2), ..., pmin(k, N-k+1) }
Nam has calculated all N values f(1), f(2), ..., f(N) and he has written them on a piece of paper. You are given these values in the
A few days later Nam totally forgot his permutation P. Luckily, he still kept the paper with the sequence F.
Please help him: count all permutations P that correspond to the given F and return that count modulo 998244353.
Definition
- Class:
- MaxOfMin
- Method:
- count
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int count(int[] F)
- (be sure your method is public)
Constraints
- F will have between 1 and 50 elements, inclusive.
- Each element of F will be between 1 and 50, inclusive.
Examples
{3, 1, 1}
Returns: 2
Let's examine all six permutations of the set {1, 2, 3}: P = {1, 2, 3} f(1) = max(1, 2, 3) = 3 f(2) = max(1, 2) = 2 f(3) = max(1) = 1 P = {1, 3, 2} f(1) = max(1, 3, 2) = 3 f(2) = max(1, 2) = 2 f(3) = max(1) = 1 P = {2, 1, 3} f(1) = max(2, 1, 3) = 3 f(2) = max(1, 1) = 1 f(3) = max(1) = 1 P = {2, 3, 1} f(1) = max(2, 3, 1) = 3 f(2) = max(2, 1) = 2 f(3) = max(1) = 1 P = {3, 1, 2} f(1) = max(3, 1, 2) = 3 f(2) = max(1, 1) = 1 f(3) = max(1) = 1 P = {3, 2, 1} f(1) = max(3, 2, 1) = 3 f(2) = max(2, 1) = 2 f(3) = max(1) = 1 We see that there are two permutations that match the given F: the permutations {2, 1, 3} and {3, 1, 2}.
{3, 1, 3}
Returns: 0
As we saw above, for N = 3 there are no permutations with f(3) = 3.
{5, 2, 2, 1, 1}
Returns: 12
The twelve permutations that match this F are precisely the permutations in which P[2] and P[4] are 1 and 2, in either order.
{6, 5, 2, 1, 1, 1}
Returns: 40
{50, 45, 39, 33, 27, 19, 19, 19, 12, 12, 7, 7, 7, 6, 6, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 364866987
Don't forget the modulo.
{1}
Returns: 1
{2, 1}
Returns: 2
{3, 2, 1}
Returns: 4
{4, 3, 2, 1}
Returns: 8
{4, 2, 2, 1}
Returns: 4
{4, 3, 1, 1}
Returns: 4
{4, 2, 1, 1}
Returns: 8
{5, 4, 3, 2, 1}
Returns: 16
{5, 3, 3, 2, 1}
Returns: 8
{5, 4, 2, 2, 1}
Returns: 8
{5, 3, 2, 2, 1}
Returns: 16
{5, 4, 3, 1, 1}
Returns: 8
{5, 3, 3, 1, 1}
Returns: 4
{5, 4, 1, 1, 1}
Returns: 8
{5, 3, 2, 1, 1}
Returns: 16
{5, 3, 1, 1, 1}
Returns: 16
{5, 4, 2, 1, 1}
Returns: 8
{6, 5, 4, 3, 2, 1}
Returns: 32
{6, 4, 4, 3, 2, 1}
Returns: 16
{6, 5, 3, 3, 2, 1}
Returns: 16
{6, 4, 3, 3, 2, 1}
Returns: 32
{6, 5, 4, 2, 2, 1}
Returns: 16
{6, 4, 4, 2, 2, 1}
Returns: 8
{6, 5, 2, 2, 2, 1}
Returns: 16
{6, 4, 3, 2, 2, 1}
Returns: 32
{6, 4, 2, 2, 2, 1}
Returns: 32
{6, 5, 3, 2, 2, 1}
Returns: 16
{6, 3, 3, 2, 2, 1}
Returns: 24
{6, 5, 4, 3, 1, 1}
Returns: 16
{6, 4, 4, 3, 1, 1}
Returns: 8
{6, 5, 3, 3, 1, 1}
Returns: 8
{6, 4, 3, 3, 1, 1}
Returns: 16
{6, 5, 4, 1, 1, 1}
Returns: 16
{6, 4, 4, 1, 1, 1}
Returns: 8
{6, 4, 3, 2, 1, 1}
Returns: 32
{6, 4, 2, 1, 1, 1}
Returns: 80
{6, 5, 3, 2, 1, 1}
Returns: 16
{6, 5, 3, 1, 1, 1}
Returns: 16
{6, 3, 3, 1, 1, 1}
Returns: 24
{6, 3, 3, 2, 1, 1}
Returns: 24
{6, 5, 4, 2, 1, 1}
Returns: 16
{6, 4, 3, 1, 1, 1}
Returns: 32
{6, 4, 4, 2, 1, 1}
Returns: 8
{6, 5, 2, 2, 1, 1}
Returns: 16
{6, 4, 2, 2, 1, 1}
Returns: 32
{6, 3, 2, 1, 1, 1}
Returns: 24
{6, 3, 2, 2, 1, 1}
Returns: 48
{7, 6, 5, 4, 3, 2, 1}
Returns: 64
{7, 5, 5, 4, 3, 2, 1}
Returns: 32
{7, 6, 4, 4, 3, 2, 1}
Returns: 32
{7, 5, 4, 4, 3, 2, 1}
Returns: 64
{7, 6, 5, 3, 3, 2, 1}
Returns: 32
{7, 5, 5, 3, 3, 2, 1}
Returns: 16
{7, 6, 3, 3, 3, 2, 1}
Returns: 32
{7, 5, 4, 3, 3, 2, 1}
Returns: 64
{7, 5, 3, 3, 3, 2, 1}
Returns: 64
{7, 6, 4, 3, 3, 2, 1}
Returns: 32
{7, 4, 4, 3, 3, 2, 1}
Returns: 48
{7, 6, 5, 4, 2, 2, 1}
Returns: 32
{7, 5, 5, 4, 2, 2, 1}
Returns: 16
{7, 6, 4, 4, 2, 2, 1}
Returns: 16
{7, 5, 4, 4, 2, 2, 1}
Returns: 32
{7, 6, 5, 2, 2, 2, 1}
Returns: 32
{7, 5, 5, 2, 2, 2, 1}
Returns: 16
{7, 6, 3, 2, 2, 2, 1}
Returns: 80
{7, 5, 4, 3, 2, 2, 1}
Returns: 64
{7, 5, 3, 2, 2, 2, 1}
Returns: 160
{7, 6, 4, 3, 2, 2, 1}
Returns: 32
{7, 6, 4, 2, 2, 2, 1}
Returns: 32
{7, 4, 4, 2, 2, 2, 1}
Returns: 48
{7, 4, 4, 3, 2, 2, 1}
Returns: 48
{7, 6, 5, 3, 2, 2, 1}
Returns: 32
{7, 5, 4, 2, 2, 2, 1}
Returns: 64
{7, 5, 5, 3, 2, 2, 1}
Returns: 16
{7, 6, 3, 3, 2, 2, 1}
Returns: 32
{7, 5, 3, 3, 2, 2, 1}
Returns: 64
{50, 44, 40, 40, 24, 24, 16, 16, 16, 16, 13, 7, 6, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 362394381
{50, 44, 36, 28, 24, 24, 23, 23, 9, 9, 9, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 635000275
{50, 48, 36, 36, 24, 24, 24, 19, 19, 11, 8, 8, 8, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 844397046
{50, 41, 35, 23, 23, 23, 23, 16, 16, 7, 7, 7, 7, 5, 5, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 636554883
{50, 46, 44, 39, 28, 23, 23, 23, 18, 18, 18, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1}
Returns: 61968324
{50, 39, 31, 28, 28, 21, 21, 16, 16, 16, 16, 16, 16, 5, 5, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 959769113
{50, 47, 33, 27, 19, 19, 19, 10, 10, 10, 10, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 2156243
{50, 46, 37, 26, 25, 21, 20, 20, 14, 14, 14, 7, 6, 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 203474160
{50, 44, 32, 29, 29, 29, 26, 26, 15, 15, 15, 7, 7, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 308248720
{50, 47, 39, 38, 21, 17, 17, 17, 17, 13, 13, 13, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1}
Returns: 715753460
{50, 43, 41, 39, 31, 26, 17, 17, 17, 17, 17, 17, 15, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 595987394
{50, 42, 38, 31, 25, 25, 22, 22, 22, 22, 7, 7, 7, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1}
Returns: 553840734
{50, 43, 31, 29, 29, 21, 13, 13, 12, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 642104638
{50, 47, 36, 33, 24, 23, 23, 23, 23, 12, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1}
Returns: 67726504
{50, 40, 37, 34, 18, 14, 14, 14, 11, 11, 10, 9, 9, 6, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 804036240
{50, 48, 47, 36, 21, 17, 17, 9, 9, 9, 9, 9, 9, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 418365676
{50, 40, 39, 26, 26, 26, 20, 20, 8, 8, 8, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1}
Returns: 449321145
{50, 42, 33, 32, 29, 29, 23, 23, 23, 18, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 988094594
{50, 46, 43, 37, 37, 18, 18, 18, 18, 18, 12, 12, 12, 8, 7, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 162208323
{50, 45, 42, 41, 21, 20, 17, 12, 12, 8, 7, 7, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 36384098
{30, 24, 19, 14, 14, 14, 13, 9, 5, 5, 5, 5, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1}
Returns: 924348611
{31, 28, 21, 19, 19, 17, 15, 11, 11, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 399870760
{32, 30, 18, 15, 14, 11, 11, 11, 11, 11, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1}
Returns: 805701930
{33, 30, 23, 22, 12, 10, 10, 10, 10, 10, 9, 9, 9, 9, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1}
Returns: 246348861
{34, 28, 21, 21, 11, 9, 9, 9, 9, 7, 7, 7, 7, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 392202765
{35, 28, 26, 21, 18, 16, 16, 16, 12, 10, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1}
Returns: 5687370
{36, 30, 27, 20, 20, 20, 10, 10, 10, 10, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1}
Returns: 269213591
{37, 30, 24, 21, 19, 14, 13, 13, 11, 9, 9, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 596884536
{38, 29, 19, 18, 17, 16, 11, 11, 11, 11, 11, 9, 7, 7, 6, 6, 6, 6, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 795558420
{39, 34, 24, 22, 22, 22, 20, 19, 9, 9, 9, 9, 9, 9, 8, 8, 7, 7, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 995111097
{40, 37, 32, 29, 17, 17, 17, 17, 17, 16, 16, 11, 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 152408571
{41, 35, 31, 29, 20, 15, 15, 10, 10, 10, 10, 10, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 603596086
{42, 37, 35, 29, 29, 26, 20, 20, 20, 20, 8, 8, 8, 8, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 487915121
{43, 39, 26, 26, 21, 21, 15, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1}
Returns: 400153262
{44, 42, 36, 23, 23, 20, 20, 20, 16, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 278352692
{45, 39, 30, 30, 24, 19, 19, 19, 16, 16, 16, 16, 16, 10, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1}
Returns: 189363579
{46, 40, 34, 34, 24, 16, 13, 13, 13, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1}
Returns: 754248377
{47, 43, 40, 40, 27, 20, 20, 19, 10, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1}
Returns: 535196289
{48, 47, 33, 30, 22, 22, 17, 17, 17, 17, 7, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 291077856
{49, 42, 36, 30, 26, 26, 24, 24, 24, 10, 10, 10, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 247737303
{43, 41, 37, 36, 33, 31, 30, 30, 29, 26, 25, 24, 23, 23, 23, 22, 22, 20, 19, 19, 17, 16, 15, 14, 14, 13, 12, 10, 7, 7, 5, 5, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1}
Returns: 866126678
{44, 37, 32, 32, 32, 30, 26, 25, 23, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 17, 14, 13, 13, 12, 11, 11, 10, 9, 9, 7, 7, 7, 6, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1}
Returns: 299824595
{45, 37, 36, 36, 33, 32, 32, 30, 30, 30, 28, 27, 25, 22, 22, 20, 20, 19, 19, 18, 17, 17, 16, 16, 16, 13, 12, 12, 12, 11, 11, 8, 7, 6, 6, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1}
Returns: 410815134
{46, 44, 38, 38, 37, 36, 34, 33, 32, 26, 25, 24, 24, 24, 23, 22, 21, 20, 20, 19, 19, 19, 19, 17, 15, 15, 14, 12, 11, 11, 11, 10, 10, 9, 8, 8, 8, 7, 5, 4, 3, 2, 1, 1, 1, 1}
Returns: 571409833
{47, 32, 32, 28, 24, 24, 24, 20, 20, 19, 18, 17, 17, 17, 16, 15, 15, 15, 15, 14, 14, 13, 13, 12, 10, 9, 9, 8, 8, 7, 7, 7, 7, 6, 5, 5, 4, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1}
Returns: 547744114
{48, 44, 40, 37, 37, 36, 35, 34, 34, 34, 32, 32, 31, 30, 28, 27, 26, 26, 25, 25, 24, 21, 20, 19, 18, 17, 17, 16, 15, 15, 15, 14, 14, 13, 10, 9, 9, 8, 7, 7, 7, 6, 6, 5, 5, 2, 1, 1}
Returns: 0
{49, 46, 45, 38, 37, 36, 34, 34, 33, 33, 32, 31, 30, 29, 28, 26, 26, 24, 22, 21, 21, 20, 20, 18, 17, 17, 15, 15, 14, 14, 13, 12, 12, 12, 11, 10, 8, 8, 8, 7, 6, 6, 6, 5, 2, 1, 1, 1, 1}
Returns: 710821452
{50, 41, 39, 38, 35, 35, 34, 33, 29, 29, 29, 27, 24, 23, 22, 22, 21, 20, 17, 17, 17, 16, 15, 14, 13, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 7, 7, 7, 5, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1}
Returns: 408362258
{7, 6, 6, 4, 3, 1, 1}
Returns: 0
{8, 6, 5, 5, 3, 3, 2, 1}
Returns: 64
{9, 8, 4, 4, 3, 2, 1, 1, 1}
Returns: 384
{10, 10, 9, 5, 4, 3, 3, 2, 1, 1}
Returns: 0
{11, 11, 6, 5, 5, 5, 3, 3, 1, 1, 1}
Returns: 0
{12, 9, 7, 6, 5, 5, 4, 4, 3, 2, 2, 1}
Returns: 4608
{13, 9, 9, 7, 4, 3, 3, 2, 2, 1, 1, 1, 1}
Returns: 41472
{14, 14, 11, 11, 8, 8, 7, 5, 5, 5, 4, 1, 1, 1}
Returns: 0
{15, 11, 8, 7, 7, 6, 5, 4, 4, 3, 3, 1, 1, 1, 1}
Returns: 589824
{8, 7, 5, 3, 2, 2, 1, 1}
Returns: 64
{9, 9, 6, 5, 3, 2, 2, 1, 1}
Returns: 0
{10, 8, 6, 4, 4, 1, 1, 1, 1, 1}
Returns: 2880
{11, 10, 7, 6, 6, 5, 4, 3, 2, 1, 1}
Returns: 512
{12, 12, 10, 10, 5, 3, 3, 3, 2, 1, 1, 1}
Returns: 0
{50, 45, 41, 31, 24, 24, 24, 22, 22, 18, 11, 11, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 643776487
{50, 45, 41, 36, 27, 22, 14, 14, 14, 11, 8, 7, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 528435376
{50, 43, 35, 35, 27, 24, 19, 19, 19, 17, 15, 15, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 512373941
{50, 44, 33, 33, 25, 25, 25, 25, 11, 6, 6, 6, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 103835856
{50, 46, 42, 36, 34, 34, 33, 30, 24, 23, 22, 22, 20, 20, 16, 16, 16, 13, 13, 13, 13, 13, 10, 10, 9, 8, 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 69562187
{50, 46, 43, 43, 42, 41, 40, 37, 32, 26, 26, 23, 23, 23, 22, 19, 17, 13, 13, 13, 13, 13, 11, 11, 11, 10, 8, 8, 8, 8, 8, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1}
Returns: 333470845
{50, 44, 41, 29, 28, 28, 28, 27, 27, 27, 27, 26, 24, 23, 18, 18, 18, 17, 15, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 7, 7, 6, 5, 5, 5, 5, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1}
Returns: 948953533
{50, 40, 39, 34, 28, 22, 22, 21, 19, 19, 19, 15, 15, 14, 14, 14, 14, 12, 11, 11, 10, 10, 9, 9, 7, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 3, 3, 2, 1, 1, 1, 1}
Returns: 860331120
{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}
Returns: 32990492
Don't forget the modulo
{50, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 16, 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1}
Returns: 859741917
{50, 49, 47, 46, 42, 40, 38, 36, 34, 33, 31, 29, 28, 27, 26, 25, 24, 22, 21, 20, 19, 18, 17, 14, 12, 11, 9, 8, 7, 6, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 316722453
{50, 49, 48, 47, 46, 44, 42, 41, 39, 37, 36, 35, 34, 31, 29, 28, 25, 23, 19, 18, 17, 14, 13, 12, 10, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
Returns: 744432434
{50, 48, 46, 41, 39, 37, 33, 32, 28, 27, 26, 25, 22, 20, 15, 11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1}
Returns: 265416870
{50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Returns: 8247623
{50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 31, 30, 29, 28, 27, 26, 24, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 8, 8, 7, 6, 5, 4, 3, 2, 1}
Returns: 503245988
{50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 36, 36, 36, 35, 34, 33, 32, 30, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Returns: 503245988
{50, 49, 48, 47, 46, 45, 44, 43, 41, 41, 39, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 28, 28, 27, 26, 25, 24, 23, 22, 21, 20, 18, 17, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
Returns: 251622994
{50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 32, 32, 32, 31, 30, 29, 28, 27, 25, 25, 24, 23, 22, 20, 20, 19, 18, 17, 16, 15, 14, 13, 12, 10, 10, 9, 8, 6, 6, 5, 4, 3, 2, 1}
Returns: 125811497
{50, 49, 48, 47, 46, 45, 44, 42, 42, 40, 40, 39, 37, 37, 35, 35, 34, 33, 31, 31, 29, 29, 28, 26, 26, 25, 23, 23, 22, 21, 20, 19, 18, 17, 15, 15, 14, 12, 12, 11, 10, 8, 8, 7, 6, 5, 3, 3, 2, 1}
Returns: 679477111
{50, 49, 47, 46, 46, 45, 44, 43, 42, 41, 40, 39, 37, 37, 36, 35, 33, 33, 32, 31, 30, 29, 28, 27, 23, 23, 23, 22, 22, 20, 20, 19, 17, 17, 16, 15, 14, 13, 12, 11, 10, 8, 8, 7, 4, 4, 4, 3, 2, 1}
Returns: 335541016
{50, 42, 36, 32, 32, 31, 31, 28, 26, 24, 24, 24, 23, 23, 21, 20, 20, 20, 18, 17, 17, 16, 15, 15, 15, 15, 15, 14, 13, 13, 12, 12, 11, 11, 11, 9, 8, 7, 6, 5, 5, 5, 3, 4, 3, 3, 2, 2, 2, 1}
Returns: 0