結果
問題 | No.2553 Holidays |
ユーザー | Kude |
提出日時 | 2023-11-25 14:15:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 101 ms / 2,000 ms |
コード長 | 938 bytes |
コンパイル時間 | 186 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 77,352 KB |
最終ジャッジ日時 | 2024-09-26 10:41:26 |
合計ジャッジ時間 | 5,577 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 55 |
ソースコード
n, m = map(int, input().split()) ans = 0 d2 = [] g2 = 0 d1 = [] g1 = 0 for s in input().split('x'): ans += s.count('o') seg = s.split('o') if len(seg) == 1: l = len(seg[0]) if l: d1.append(l) else: for l in map(len, [seg[0], seg[-1]]): if l % 2 == 0: g2 += l // 2 else: g2 += l // 2 g1 += 1 for l in map(len, seg[1:-1]): if l % 2 == 0: g2 += l // 2 else: d2.append(l) d2.sort() d1.sort(reverse=True) for l in d2: if m >= l // 2: ans += l m -= l // 2 else: ans += 2 * m m = 0 t = min(m, g2) ans += 2 * t m -= t for l in d1: if not m: break ans += 1 m -= 1 l -= 1 while m and l >= 2: m -= 1 ans += 2 l -= 2 g1 += l t = min(m, g1) ans += t m -= t print(ans)