結果
問題 | No.150 "良問"(良問とは言っていない |
ユーザー |
|
提出日時 | 2015-02-13 00:24:52 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 86 ms / 5,000 ms |
コード長 | 867 bytes |
コンパイル時間 | 85 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-10-11 01:48:26 |
合計ジャッジ時間 | 1,803 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 20 |
ソースコード
#!/usr/bin/env python3 import sys def strdistance(str1, str2): count = 0 for s1, s2 in zip(str1, str2): if s1 != s2: count += 1 return count T = int(input()) for s in sys.stdin: good = s.find("good") problem = s.find("problem") if good == -1: good = len(s) - 4 if problem == -1: problem = 0 if good < problem: print(0) continue distancesg = [float("inf")] * len(s) distancesp = [float("inf")] * len(s) for i in range(len(s) - 4): distancesg[i] = strdistance("good", s[i:i + 4]) for i in range(len(s) - 7): distancesp[i] = strdistance("problem", s[i:i + 7]) mindistance = float("inf") for i in range(1, len(s) - 4): mindistance = min( mindistance, min(distancesg[:i]) + min(distancesp[i + 3:])) print(mindistance)