結果

問題 No.2102 [Cherry Alpha *] Conditional Reflection
ユーザー 👑 rin204
提出日時 2022-10-16 16:20:12
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,885 ms / 3,000 ms
コード長 709 bytes
コンパイル時間 180 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 404,844 KB
最終ジャッジ日時 2024-06-27 11:32:38
合計ジャッジ時間 27,584 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 70
権限があれば一括ダウンロードができます

ソースコード

diff #

import random

n = int(input())
SS = [input() for _ in range(n)]
l = max(len(S) for S in SS)
hash_ = [random.choices(range(1, 1 << 62), k=26) for _ in range(l)]

se = [set() for _ in range(l + 1)]
for S in SS:
    h = 0
    for i, s in enumerate(S):
        h ^= hash_[i][ord(s) - 97]
    l = len(S)
    ans = "No"
    if h in se[l]:
        ans = "Yes"
    else:
        for i in range(l - 1):
            x = 0
            x ^= hash_[i][ord(S[i]) - 97]
            x ^= hash_[i][ord(S[i + 1]) - 97]
            x ^= hash_[i + 1][ord(S[i]) - 97]
            x ^= hash_[i + 1][ord(S[i + 1]) - 97]
            if h ^ x in se[l]:
                ans = "Yes"
                break
    print(ans)
    se[l].add(h)
0