結果

問題 No.252 "良問"(良問とは言っていない (2)
ユーザー tnoda_tnoda_
提出日時 2015-08-31 15:16:20
言語 Python2
(2.7.18)
結果
TLE  
実行時間 -
コード長 947 bytes
コンパイル時間 83 ms
コンパイル使用メモリ 7,040 KB
実行使用メモリ 17,228 KB
最終ジャッジ日時 2024-07-18 16:56:11
合計ジャッジ時間 12,065 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
testcase_01 TLE -
testcase_02 TLE -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

from sys import stdin


def solve(S):
    L = len(S)
    # Leading problems
    lp = [0] * L
    for i in xrange(L-6):
        flag = True
        lp[i+6] = lp[i+5]
        for j in xrange(7):
            if S[i+j] != "problem"[j]:
                flag = False
        if flag:
            lp[i+6] += 1
    # good cost at i
    good = [4] * L
    for i in xrange(L-10):
        for j in xrange(4):
            if S[i+j] == "good"[j]:
                good[i] -= 1
    # problem cost at i
    problem = [7] * L
    for i in xrange(L-6):
        for j in xrange(7):
            if S[i+j] == "problem"[j]:
                problem[i] -= 1
    for i in xrange(L-6, -1, -1):
        problem[i] = min(problem[i+1], problem[i])
    ans = good[0] + problem[4]
    for i in xrange(1, L-10):
        ans = min(ans, good[i] + problem[i+4] + lp[i-1])
    print(ans)


lines = stdin.read().split('\n')

T = int(lines[0])
for i in xrange(T):
    solve(lines[i+1])
0