結果
問題 |
No.1005 BOT対策
|
ユーザー |
👑 ![]() |
提出日時 | 2020-03-03 03:11:49 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 816 bytes |
コンパイル時間 | 185 ms |
コンパイル使用メモリ | 12,288 KB |
実行使用メモリ | 10,240 KB |
最終ジャッジ日時 | 2025-06-20 00:46:41 |
合計ジャッジ時間 | 2,000 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
def main(): s = input() t = input() n = len(s) m = len(t) assert(1 <= n <= 1000) assert(1 <= m <= 1000) assert(all(i.islower() for i in s)) assert(all(i.islower() for i in t)) if len(t) == 1: return -1 if t in s else 0 t += s N = len(t) z = [0] * N i = 1 j = 0 while i < N: while i + j < N and t[j] == t[i + j]: j += 1 z[i] = j if not j: i += 1 continue k = 1 while i + k < N and k + z[k] < j: z[i + k] = z[k] k += 1 i += k; j -= k; ans = 0 i = m while i <= n: if z[i] >= m: ans += 1 i += m - 1 else: i += 1 return ans if __name__ == '__main__': print(main())