結果

問題 No.3266 岩井星人は見ずにはいられない
ユーザー Asuka
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)
0