結果
| 問題 | 
                            No.2102 [Cherry Alpha *] Conditional Reflection
                             | 
                    
| コンテスト | |
| ユーザー | 
                            👑  Kazun
                         | 
                    
| 提出日時 | 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))
            
            
            
        
            
Kazun