結果
| 問題 |
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)
Kude