結果
問題 | No.2732 Similar Permutations |
ユーザー | PNJ |
提出日時 | 2024-04-19 22:56:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 175 ms / 2,000 ms |
コード長 | 762 bytes |
コンパイル時間 | 427 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 123,904 KB |
最終ジャッジ日時 | 2024-10-11 16:57:00 |
合計ジャッジ時間 | 23,300 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 101 |
ソースコード
import itertools def make_perm(n): P = list(itertools.permutations([i + 1 for i in range(n)])) return P N = int(input()) A = list(map(int,input().split())) if N <= 4: P = make_perm(N) for p in P: x = 0 for i in range(N): x ^= p[i] + A[i] for q in P: if p == q: continue y = 0 for j in range(N): y ^= q[j] + A[j] if x == y: print(*p) print(*q) exit() print(-1) exit() X = [[] for i in range(4)] for i in range(N): X[A[i] % 4].append(i) for i in range(4): if len(X[i]) >= 2: l,r = X[i][0],X[i][1] break P = [-1 for i in range(N)] P[l] = 1 P[r] = 2 n = 3 for i in range(N): if P[i] == -1: P[i] = n n += 1 print(*P) P[l],P[r] = P[r],P[l] print(*P)