| 125 | } |
| 126 | |
| 127 | private static int resolveOri(int[] arr, int base) { |
| 128 | int sum = 0, idx = 0, lastUnknown = -1; |
| 129 | for (int i = 0; i < arr.length; i++) { |
| 130 | if (arr[i] == -1) { |
| 131 | arr[i] = gen.nextInt(base); |
| 132 | lastUnknown = i; |
| 133 | } |
| 134 | sum += arr[i]; |
| 135 | } |
| 136 | if (sum % base != 0 && lastUnknown != -1) { |
| 137 | arr[lastUnknown] = (30 + arr[lastUnknown] - sum) % base; |
| 138 | } |
| 139 | for (int i = 0; i < arr.length - 1; i++) { |
| 140 | idx *= base; |
| 141 | idx += arr[i]; |
| 142 | } |
| 143 | return idx; |
| 144 | } |
| 145 | |
| 146 | private static int countUnknown(int[] arr) { |
| 147 | if (arr == STATE_SOLVED) { |