結果
問題 | No.2732 Similar Permutations |
ユーザー |
👑 ![]() |
提出日時 | 2024-04-19 22:18:03 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 156 ms / 2,000 ms |
コード長 | 1,065 bytes |
コンパイル時間 | 300 ms |
コンパイル使用メモリ | 82,588 KB |
実行使用メモリ | 111,872 KB |
最終ジャッジ日時 | 2024-10-11 15:44:23 |
合計ジャッジ時間 | 22,327 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 101 |
ソースコード
""" 1,2の位置で構成する 2の桁以上で、最初に0になる桁が同じ数があれば終わり 実験 """ import sys import random N = int(input()) if N == 1: print (-1) sys.exit() A = list(map(int,input().split())) tup = None if N <= 1000: for i in range(N): for j in range(i+1,N): if (A[i]+1)^(A[j]+2) == (A[i]+2)^(A[j]+1): tup = (i,j) break else: import random for lp in range(10**6): i,j = random.randint(0,N-1),random.randint(0,N-1) if i == j: continue if (A[i]+1)^(A[j]+2) == (A[i]+2)^(A[j]+1): tup = (i,j) break if True: if tup == None: print (-1) sys.exit() else: P = [None] * N Q = [None] * N P[tup[0]] = Q[tup[1]] = 1 P[tup[1]] = Q[tup[0]] = 2 #print (P,Q) cnt = 3 for i in range(N): if P[i] == None: P[i] = Q[i] = cnt cnt += 1 print (*P) print (*Q)