結果
| 問題 | No.252 "良問"(良問とは言っていない (2) | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2024-02-20 18:05:44 | 
| 言語 | Ruby (3.4.1) | 
| 結果 | 
                                TLE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 839 bytes | 
| コンパイル時間 | 126 ms | 
| コンパイル使用メモリ | 7,680 KB | 
| 実行使用メモリ | 33,488 KB | 
| 最終ジャッジ日時 | 2024-09-29 03:48:35 | 
| 合計ジャッジ時間 | 7,182 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | TLE * 1 -- * 6 | 
コンパイルメッセージ
Main.rb:6: warning: assigned but unused variable - u Syntax OK
ソースコード
def min a, b
  return a < b ? a : b
end
t = readline().to_i
for u in 1..t do
  s = readline()
  prevprob = Array.new(s.length, 0)
  for i in 6..(s.length-1) do
    flg = true
    for j in 0..6 do
      if s[i - 6 + j] != 'problem'[j]
        flg = false
        break
      end
    end
    prevprob[i] = prevprob[i - 1]
    prevprob[i] += 1 if flg
  end
  prob = Array.new(s.length, 100)
  for i in 0..(s.length-8) do
    prob[i] = 0
    for j in 0..6 do
      prob[i] += 1 if s[i + j] != 'problem'[j]
    end
  end
  for i in 2..(s.length) do
    prob[s.length - i] = min prob[s.length - i + 1], prob[s.length - i]
  end
  ans = 100
  for i in 0..(s.length - 11) do
    sub = prob[i + 4]
    for j in 0..3 do
      sub += 1 if s[i + j] != 'good'[j]
    end
    sub += prevprob[i - 1] if i > 0
    ans = min ans, sub
  end
  puts ans
end
            
            
            
        