結果
問題 | No.1355 AND OR GAME |
ユーザー |
![]() |
提出日時 | 2021-09-02 01:02:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 406 ms / 2,000 ms |
コード長 | 1,105 bytes |
コンパイル時間 | 164 ms |
コンパイル使用メモリ | 81,868 KB |
実行使用メモリ | 121,652 KB |
最終ジャッジ日時 | 2024-11-28 23:04:19 |
合計ジャッジ時間 | 20,469 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 95 |
ソースコード
import sysinput = sys.stdin.readlineN,X,Y=map(int,input().split())A=list(map(int,input().split()))initY=YP=[]Y=list(map(int,list(bin(Y)[2:].zfill(64)[::-1])))for i in range(N-1,-1,-1):#print(i,Y)S=0T=0for j in range(64):if (1<<j) & A[i]!=0 and Y[j] == 0:S=1if (1<<j) & A[i]==0 and Y[j] == 1:T=1if S==0 and T==0:P.append(3)P+=[1]*(N-len(P))print(*P[::-1])exit()elif S==1 and T==1:print(-1)exit()elif S==1:P.append(1)for j in range(64):if Y[j]==0:if (1<<j) & A[i]!=0:Trueelse:Y[j]=-1else:P.append(2)for j in range(64):if Y[j]==1:if (1<<j) & A[i]==0:Trueelse:Y[j]=-1P=P[::-1]for i in range(N):if P[i]==1:X&=A[i]elif P[i]==2:X|=A[i]else:X=A[i]if X==initY:print(*P)else:print(-1)