結果

問題 No.150 "良問"(良問とは言っていない
ユーザー lam6er
提出日時 2025-03-20 18:45:25
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 294 ms / 5,000 ms
コード長 1,045 bytes
コンパイル時間 167 ms
コンパイル使用メモリ 82,336 KB
実行使用メモリ 77,068 KB
最終ジャッジ日時 2025-03-20 18:45:38
合計ジャッジ時間 3,566 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

def min_operations(s):
    target_good = 'good'
    target_problem = 'problem'
    len_s = len(s)
    min_k = float('inf')
    
    # Iterate over all possible starting indices for 'good'
    for i in range(len_s - 3):
        # Calculate changes needed to make 'good' starting at i
        good_changes = sum(1 for k in range(4) if s[i + k] != target_good[k])
        
        # The earliest j starts at i+4, latest j can be len_s -7
        j_start = i + 4
        j_end = len_s - 7
        
        if j_start > j_end:
            continue
        
        # Iterate over possible j values
        for j in range(j_start, j_end + 1):
            # Calculate changes needed to make 'problem' starting at j
            problem_changes = sum(1 for k in range(7) if s[j + k] != target_problem[k])
            total = good_changes + problem_changes
            if total < min_k:
                min_k = total
    return min_k

# Read input and output results
T = int(input())
for _ in range(T):
    S = input().strip()
    print(min_operations(S))
0