結果
問題 |
No.2442 線形写像
|
ユーザー |
![]() |
提出日時 | 2023-08-25 22:30:03 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 994 bytes |
コンパイル時間 | 168 ms |
コンパイル使用メモリ | 81,976 KB |
実行使用メモリ | 138,692 KB |
最終ジャッジ日時 | 2024-12-24 09:48:54 |
合計ジャッジ時間 | 28,896 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 TLE * 11 |
ソースコード
# わからない # しかし確実なのはA0=0, A1=それ以後の2個ずつのxor # すべての項が2**N未満 # あとはランダムに10**5回くらいテストするか N = int(input()) A = [] max_test = True for i in range(2**N): a = int(input()) A.append(a) if a >= 2**N: max_test = False A0_test = True if A[0] != 0: A0_test = False if N == 0: if A0_test == True: print('Yes') else: print('No') exit() A1 = A[1] A1_test = True for i in range(1, 2**(N-1)): #print(A[i*2], A[i*2+1], A[i*2]^A[i*2+1]) if A[i*2]^A[i*2+1] != A1: A1_test = False #print(max_test, A0_test, A1_test) import random random_test = True for r in range(10**7): i = random.randint(0, 2**N-1) j = random.randint(0, 2**N-1) if A[i^j] != A[i]^A[j]: random_test = False break if max_test == True and A0_test == True and A1_test == True and random_test == True: print('Yes') else: print('No')