(int[] arr, int idx, int len)
| 62 | } |
| 63 | |
| 64 | static void set11Perm(int[] arr, int idx, int len) { |
| 65 | long val = 0xa9876543210L; |
| 66 | for (int i = 0; i < len - 1; i++) { |
| 67 | int p = fact[len - 1 - i]; |
| 68 | int v = idx / p; |
| 69 | idx -= v * p; |
| 70 | v <<= 2; |
| 71 | arr[i] = (int) ((val >> v) & 0xf); |
| 72 | long m = (1L << v) - 1; |
| 73 | val = (val & m) + ((val >> 4) & ~m); |
| 74 | } |
| 75 | arr[len - 1] = (int) (val & 0xf); |
| 76 | } |
| 77 | |
| 78 | static int get11Perm(int[] arr, int len) { |
| 79 | int idx = 0; |