UnfriendlyDoublePermutation
TCCC07 Semi 1 · 2007-07-30 · by andrewzta
Problem Statement
An array a[1], a[2], ... a[k*n] is called a k-multipermutation if each number between 1 and n, inclusive, occurs exactly k times in it.
A k-multipermutation a is called unfriendly if no two adjacent elements in it are equal. For example, the 2-multipermutation (1, 2, 3, 2, 1, 3) is unfriendly, but (1, 2, 2, 3, 1, 3) is not.
You are given
Constraints
- n will be between 1 and 20, inclusive.
- k will be between 1 and 5, inclusive.
2 2 Returns: 2
There are two such multipermutations: (1, 2, 1, 2) and (2, 1, 2, 1).
3 2 Returns: 30
5 1 Returns: 120
All 1-multipermutations (or simply permutations) are unfriendly.
2 4 Returns: 2
1 1 Returns: 1
Submissions are judged against all 100 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class UnfriendlyMultiPermutation with a public method int count(int n, int k) · 100 test cases · 2 s / 256 MB per case