(int[] n, int c, int p, int o)
| 337 | } |
| 338 | |
| 339 | private static void getEdge(int[] n, int c, int p, int o) { |
| 340 | int[] s = new int[3]; |
| 341 | Utils.idxToPerm(s, p, 3, false); |
| 342 | int t, q = 3; |
| 343 | for (t = 0; t < 12; t++) |
| 344 | if (c >= Utils.Cnk[11 - t][q]) { |
| 345 | c -= Utils.Cnk[11 - t][q--]; |
| 346 | n[t] = s[q] << 1 | o & 1; |
| 347 | o >>= 1; |
| 348 | } else n[t] = -1; |
| 349 | } |
| 350 | |
| 351 | private static void getCorner(int[] n, int c, int p, int o) { |
| 352 | int[] s = new int[4]; |