結果

問題 No.2732 Similar Permutations
ユーザー PNJPNJ
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0