結果

問題 No.78 クジ付きアイスバー
ユーザー tmentaiko
提出日時 2020-08-27 23:17:05
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 32 ms / 5,000 ms
コード長 1,076 bytes
コンパイル時間 98 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2024-11-08 19:00:19
合計ジャッジ時間 2,572 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 35
権限があれば一括ダウンロードができます

ソースコード

diff #

n,k= map(int,input().split())
s=input()
c,z=[0]*n,[0]*n
for i in range(n):
    if i==0:c[i],z[i]=1,int(s[i])
    else:
        at=int(s[i])
        if z[i-1]==0:c[i],z[i]=1,at
        else:c[i],z[i]=0,z[i-1]+(at-1)
if k<=n:
    cost1 =[0]*n
    for i in range(n):cost1[i]=c[i]+(0 if i==0 else cost1[i-1])
    print(cost1[k-1])
else:
    c2,z2=[0]*n,[0]*n
    for i in range(n):
        at=int(s[i])
        if i==0:
            if z[-1]>0:c2[i],z2[i]=0,at+z[-1]-1
            else:      c2[i],z2[i]=1,at
        else:
            if z2[i-1]==0:c2[i],z2[i]=1,z2[i-1]+ at
            else:         c2[i],z2[i]=0,z2[i-1]+(at-1)
    if sum(c2)==0 and z2[-1]>0:print(sum(c))
    else:
        b=k//n
        e=k%n
        cost2 =[0]*n
        for i in range(n):
            cost2[i]=c2[i] + (0 if i==0 else cost2[i-1])
        if sum(c2)==0 and z2[-1]>0:
            print(sum(c))
        else:
            goukei=0
            goukei+=sum(c)
            goukei+=0 if b==1 else (b-1)*(sum(c2))
            if e==0:pass
            else:goukei+=cost2[e-1]
            print(goukei)
0