結果

問題 No.3114 0→1
ユーザー Kevgen
提出日時 2025-04-18 22:33:24
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 174 ms / 2,000 ms
コード長 576 bytes
コンパイル時間 466 ms
コンパイル使用メモリ 11,904 KB
実行使用メモリ 13,696 KB
最終ジャッジ日時 2025-04-18 22:33:30
合計ジャッジ時間 5,474 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
s = input().strip()

total_zeros = s.count('0')

if total_zeros == 0:
    print(0)
    exit()

dp = [0] * n
max_val = 0

# Initialize the first element
if s[0] == '0':
    dp[0] = 1
else:
    dp[0] = 0

for i in range(1, n):
    # Update max_val if necessary
    if i >= 3:
        prev_pos = i - 3
        if dp[prev_pos] > max_val:
            max_val = dp[prev_pos]
    # Calculate dp[i]
    if s[i] == '0':
        option = max_val + 1
        dp[i] = max(dp[i-1], option)
    else:
        dp[i] = dp[i-1]

max_keep = dp[-1]
print(total_zeros - max_keep)
0