結果

問題 No.3114 0→1
コンテスト
ユーザー V_Melville
提出日時 2025-04-19 05:56:12
言語 Python3
(3.15.0 + numpy 2.5.4 + scipy 1.18.1 + ACL)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
WJ  
(最新)
AC  
(最初)
実行時間 -
コード長 421 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
最終ジャッジ日時 2026-10-16 03:23:39
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)

ソースコード

diff #
raw source code

import bisect

n = int(input())
s = input().strip()
pos = [i for i in range(n) if s[i] == '0']
m = len(pos)

if m <= 1:
    print(0)
else:
    dp = [0] * m
    dp[0] = 1
    for i in range(1, m):
        target = pos[i] - 3
        j = bisect.bisect_right(pos, target) - 1
        if j >= 0:
            current = dp[j] + 1
        else:
            current = 1
        dp[i] = max(dp[i-1], current)
    print(m - dp[-1])
0