結果
問題 | No.2102 [Cherry Alpha *] Conditional Reflection |
ユーザー |
👑 ![]() |
提出日時 | 2022-07-26 19:14:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,403 ms / 3,000 ms |
コード長 | 794 bytes |
コンパイル時間 | 300 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 400,908 KB |
最終ジャッジ日時 | 2024-06-26 12:52:31 |
合計ジャッジ時間 | 30,301 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 70 |
ソースコード
from random import randint as ri from collections import defaultdict def dic(i,s): if s not in X[i]: X[i][s]=ri(1,rand_max) return X[i][s] import sys input=sys.stdin.readline write=sys.stdout.write N=int(input()) S=[[] for _ in range(N)] L=0 for i in range(N): S[i]=[ord(a)-ord("a") for a in input()[:-1]] L=max(L,len(S[i])) alpha=26 rand_max=(1<<63)-1 X=[{} for _ in range(L)] F=set() Ans=["No"]*N for i in range(N): s=S[i] eta=0 for j in range(len(s)): eta^=dic(j,s[j]) if eta in F: Ans[i]="Yes" for j in range(len(s)-1): delta=dic(j,s[j])^dic(j,s[j+1])^dic(j+1,s[j])^dic(j+1,s[j+1]) if eta^delta in F: Ans[i]="Yes" F.add(eta) write("\n".join(Ans))