結果
問題 | No.8014 多項式ハッシュに関する教育的な問題 |
ユーザー |
|
提出日時 | 2017-09-12 16:56:06 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 12 ms / 5,000 ms |
コード長 | 822 bytes |
コンパイル時間 | 177 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 6,144 KB |
最終ジャッジ日時 | 2024-11-07 17:22:20 |
合計ジャッジ時間 | 782 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 1 |
ソースコード
#!/usr/bin/env sagemathdef h(P, B, s):acc = 0for c in s:acc = (acc * B + ord(c)) % Preturn accdef solve(P, B):len_S = 12b = []for y in range(len_S):row = [ 0 ] * len_Sif y == len_S - 1:row[0] = Pelse:row[y] = - Brow[y + 1] = 1b += rowb = matrix(ZZ, len_S, len_S, b)a = b.LLL()[0]S = ''T = ''for a_i in a:if a_i >= 0:S += chr(ord('a') + a_i)T += 'a'else:S += 'a'T += chr(ord('a') - a_i)S = ''.join(reversed(S))T = ''.join(reversed(T))return S, TP = int(raw_input())B = int(raw_input())# S, T = solve(P, B)S = 'aaancaaaabda'T = 'guhaafmeiaab'assert h(P, B, S) == h(P, B, T)print Sprint T