結果
問題 | No.2553 Holidays |
ユーザー |
![]() |
提出日時 | 2023-11-17 22:40:29 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,347 bytes |
コンパイル時間 | 356 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 76,928 KB |
最終ジャッジ日時 | 2024-09-26 10:18:50 |
合計ジャッジ時間 | 6,401 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 WA * 16 |
ソースコード
n, m = map(int, input().split())s = input()ls = [[] for _ in range(6)]for i in range(1, n-1):if s[i-1] != s[i] == "-":flg = 0flg += s[i-1] == "x"cnt = 0if s[i] == "-":cnt += 1if "-" == s[i] != s[i+1]:flg += s[i+1] == "x"ls[flg*2+cnt%2].append(cnt)for i in range(4):ls[i].sort(reverse = True)for i in range(4, 6):ls[i].sort()ans = s.count("o")rem = 0while m or ls[1]:if ls[1]:x = ls[1].pop()if x // 2 > m:ans += m * 2m = 0else:ans += xm -= x // 2elif ls[0]:x = ls[0].pop()if x // 2 > m:ans += m * 2m = 0else:ans += xm -= x // 2elif ls[2]:x = ls[2].pop()if x // 2 > m:ans += m * 2m = 0else:ans += xm -= x // 2elif ls[3]:x = ls[3].pop()if x // 2 > m:ans += m * 2m = 0else:ans += x - 1m -= x // 2rem += 1elif ls[5]:x = ls[5].pop()if x > 1:ans += 1m -= 1if x // 2 > m:ans += m * 2m = 0else:ans += x - 1m -= x // 2elif ls[4]:x = ls[4].pop()ans += 1m -= 1if (x - 1) // 2 > m:ans += m * 2m = 0else:ans += x - 2m -= (x - 2) // 2rem += 1else:breakans += min(rem, m)print(ans)