結果
問題 |
No.3266 岩井星人は見ずにはいられない
|
ユーザー |
|
提出日時 | 2025-09-06 15:51:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 68 ms / 2,000 ms |
コード長 | 2,266 bytes |
コンパイル時間 | 324 ms |
コンパイル使用メモリ | 82,160 KB |
実行使用メモリ | 74,520 KB |
最終ジャッジ日時 | 2025-09-06 15:51:17 |
合計ジャッジ時間 | 3,522 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 31 |
ソースコード
import sys n, a = map(int, input().split()) s = list(input()) now = 0 cnt = 0 for i in range(n): if s[i] == "0": now -= 1 else: if now == 0: continue else: now += 1 cnt += 1 if cnt == a: print(i+1) sys.exit() ans = 0 if now == 0: if a > cnt: if a % cnt == 0: ans += ((a // cnt) - 1) * n a = cnt else: ans = (a // cnt) * n a %= cnt for i in range(n): ans += 1 if s[i] == "0": now -= 1 else: if now == 0: continue else: now += 1 a -= 1 if a == 0: break else: new_now = now new_cnt = 0 for i in range(n): if s[i] == "0": new_now -= 1 else: if new_now == 0: continue else: new_now += 1 new_cnt += 1 if new_now == now: if a > cnt: a -= cnt ans += n if a > new_cnt: if a % new_cnt == 0: ans += ((a // new_cnt) - 1) * n a = new_cnt else: ans += (a // new_cnt) * n a %= new_cnt for i in range(n): ans += 1 if s[i] == "0": now -= 1 else: if now == 0: continue else: now += 1 a -= 1 if a == 0: break else: if a > cnt: a -= cnt ans += n cnt_1 = s.count("1") if a > cnt_1: if a % cnt_1 == 0: ans += ((a // cnt_1) - 1) * n a = cnt_1 else: ans += (a // cnt_1) * n a %= cnt_1 for i in range(n): ans += 1 if s[i] == "1": a -= 1 if a == 0: break print(ans)