結果
問題 |
No.3114 0→1
|
ユーザー |
![]() |
提出日時 | 2025-04-19 01:52:06 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 496 ms / 2,000 ms |
コード長 | 567 bytes |
コンパイル時間 | 412 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 37,480 KB |
最終ジャッジ日時 | 2025-04-19 01:52:19 |
合計ジャッジ時間 | 12,714 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
INF = float("inf") n = int(input()) s = list(map(int, input())) dp = [[INF, INF, INF] for _ in range(n+1)] # normal, 0, 01 dp[0][0] = 0 for i in range(n): if s[i] == 1: dp[i+1][0] = min(dp[i+1][0], dp[i][0]) dp[i+1][0] = min(dp[i+1][0], dp[i][2]) dp[i+1][2] = min(dp[i+1][2], dp[i][1]) else: dp[i+1][0] = min(dp[i+1][0], dp[i][0]+1) dp[i+1][1] = min(dp[i+1][1], dp[i][0]) dp[i+1][2] = min(dp[i+1][2], dp[i][1]+1) dp[i+1][0] = min(dp[i+1][0], dp[i][2]+1) # print(*dp, sep="\n") print(min(dp[n]))