結果

問題 No.3114 0→1
ユーザー tufusa
提出日時 2025-04-23 17:01:21
言語 Ruby
(3.4.1)
結果
WA  
実行時間 -
コード長 795 bytes
コンパイル時間 410 ms
コンパイル使用メモリ 8,228 KB
実行使用メモリ 31,488 KB
最終ジャッジ日時 2025-04-23 17:01:31
合計ジャッジ時間 9,568 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other WA * 30
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

n = gets.to_i
s = gets.chomp.chars.map(&:to_i)
a = 0
z = Array.new(n)

z.fill(0)
s.each_cons(2).with_index do |(x, y), i|
  z[i] += 1 if y == 0
  z[i + 1] += 1 if x == 0
end

(0...(n - 2)).each do |i|
  next unless s[i] == 0 && s[i + 1] == 1 && s[i + 2] == 0

  a += 1
  nxi = z[i] > z[i + 2] ? i : i + 2
  s[nxi] = 1
  z[nxi - 1] -= 1 if nxi > 1
  z[nxi + 1] -= 1 if nxi < n - 1
end

(0...(n - 1)).each do |i|
  next unless s[i] == 0 && s[i + 1] == 0

  a += 1
  nxi = z[i] > z[i + 1] ? i : i + 1
  s[nxi] = 1
  z[nxi - 1] -= 1 if nxi > 1
  z[nxi + 1] -= 1 if nxi < n - 1
end

(0...(n - 2)).each do |i|
  next unless s[i] == 0 && s[i + 1] == 1 && s[i + 2] == 0

  a += 1
  nxi = z[i] > z[i + 2] ? i : i + 2
  s[nxi] = 1
  z[nxi - 1] -= 1 if nxi > 1
  z[nxi + 1] -= 1 if nxi < n - 1
end

puts a
0