結果
| 問題 |
No.252 "良問"(良問とは言っていない (2)
|
| コンテスト | |
| ユーザー |
maspy
|
| 提出日時 | 2020-03-07 00:49:40 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 861 bytes |
| コンパイル時間 | 83 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 83,084 KB |
| 最終ジャッジ日時 | 2024-10-14 10:55:58 |
| 合計ジャッジ時間 | 8,223 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 6 TLE * 1 |
ソースコード
#!/usr/bin/env python3
# %%
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
import numpy as np
# %%
T = int(readline())
words = np.array(list(read().rstrip()), dtype=np.int8)
# %%
def solve(S):
if S[0] == ord('\n'):
S = S[1:]
S = np.array(list(S))
L = len(S)
P = np.zeros(L - 6, np.int32)
for i, ch in enumerate(b'problem'):
P += (S[i: L - 6 + i] != ch)
G = np.zeros(L - 4, np.int32)
for i, ch in enumerate(b'good'):
G += (S[i: L - 4 + i] != ch)
add = np.zeros_like(G)
add[7:] += (P == 0)[:-5]
np.cumsum(add, out=add)
G += add
INF = 10 ** 7
return (np.minimum.accumulate(G[:L - 10]) + P[4:]).min()
words = np.split(words, np.where(words == ord('\n'))[0])
print('\n'.join(map(str, map(solve, words))))
# %%
maspy