結果
| 問題 | No.8015 アンチローリングハッシュ |
| ユーザー |
norioc
|
| 提出日時 | 2025-03-23 21:57:34 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 165 ms / 2,000 ms |
| コード長 | 584 bytes |
| 記録 | |
| コンパイル時間 | 239 ms |
| コンパイル使用メモリ | 95,768 KB |
| 実行使用メモリ | 103,088 KB |
| 最終ジャッジ日時 | 2026-07-07 20:52:07 |
| 合計ジャッジ時間 | 5,509 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
from string import ascii_lowercase
import random
def f(b, mod):
# S[i] * b^i
d = {}
for i in range(mod+1):
x = pow(b, i, mod)
if x in d:
return i, d[x]
d[x] = i
assert False
def myhash(s: str, b, mod):
h = 0
for c in s:
h = h*b + ord(c)
h %= mod
return h
A, B = map(int, input().split())
x, y = f(A, B)
n = max(x, y) + 1
s = random.choices(ascii_lowercase, k=n)
t = s[:]
p = n-1-x
q = n-1-y
t[p], t[q] = t[q], t[p]
assert myhash(s, A, B) == myhash(t, A, B)
print(''.join(s))
print(''.join(t))
norioc