結果

問題 No.252 "良問"(良問とは言っていない (2)
ユーザー 👑 kakel-sankakel-san
提出日時 2024-02-20 18:05:44
言語 Ruby
(3.3.0)
結果
TLE  
実行時間 -
コード長 839 bytes
コンパイル時間 140 ms
コンパイル使用メモリ 11,904 KB
実行使用メモリ 37,160 KB
最終ジャッジ日時 2024-02-20 18:05:51
合計ジャッジ時間 6,998 ms
ジャッジサーバーID
(参考情報)
judge11 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
testcase_01 -- -
testcase_02 -- -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:6: warning: assigned but unused variable - u
Syntax OK

ソースコード

diff #

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
0