結果
問題 | No.2553 Holidays |
ユーザー |
![]() |
提出日時 | 2025-02-23 10:31:53 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 90 ms / 2,000 ms |
コード長 | 765 bytes |
コンパイル時間 | 361 ms |
コンパイル使用メモリ | 82,508 KB |
実行使用メモリ | 76,800 KB |
最終ジャッジ日時 | 2025-02-23 10:31:59 |
合計ジャッジ時間 | 5,472 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 55 |
ソースコード
n,m=map(int,input().split()) s=input() q=[[],[],[]] i=0 while i<n: if s[i]=="-": l=i r=i while s[r]=="-": r+=1 l-=1 if s[l]==s[r]=="o": if (r-l-1)%2: q[0]+=[r-l-1] else: q[1]+=[r-l-1] elif s[l]==s[r]=="x": q[2]+=[r-l-1] else: q[1]+=[r-l-1] i=r+1 else: i+=1 a=s.count("o") b=0 q[0].sort() for l in q[0]: if m>=l//2: a+=(l//2)*2+1 m-=l//2 else: a+=m*2 m-=m for l in q[1]: if m>=l//2: a+=(l//2)*2 m-=l//2 if l%2: b+=1 else: a+=m*2 m-=m q[2].sort() for l in q[2][::-1]: if m>0: a+=1 m-=1 l-=1 if m>=l//2: a+=(l//2)*2 m-=l//2 if l%2: b+=1 else: a+=m*2 m-=m print(a+min(b,m))