結果

問題 No.2076 Concon Substrings (ConVersion)
ユーザー rin204
提出日時 2022-09-16 22:28:24
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,195 bytes
コンパイル時間 337 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 78,816 KB
最終ジャッジ日時 2024-12-21 21:44:16
合計ジャッジ時間 3,632 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 14 WA * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import *

n, a, b = map(int, input().split())
S = input()
S = S.replace("con", "*")
lst = []
row = 0
for s in S:
    if s == "*":
        row += 1
    else:
        if row != 0:
            lst.append(row)
        row = 0
if row != 0:
    lst.append(row)
lst.sort()

aa = 0
bb = 0
C = []
for l in lst:
    aa += l // a
    l %= a
    bb += l // b
    l %= b
    C.append(-l)

def f(a, b):
    if a > b:
        return 2 * b + 1
    else:
        return 2 * a
heapify(C)

ans = f(aa, bb)
for i in range(aa - 1, -1, -1):
    c = -heappop(C)
    c += a
    bb += c // b
    c %= b
    heappush(C, -c)
    ans = max(ans, f(i, bb))
aa = 0

for i in range(len(C)):
    C[i] *= -1
    aa += C[i] // a
    C[i] %= a
    C[i] *= -1
heapify(C)
ans = max(ans, f(aa, bb))
for j in range(bb - 1, -1, -1):
    c = -heappop(C)
    c += b
    aa += c // a
    c %= a
    heappush(C, -c)
    ans = max(ans, f(aa, j))
bb = 0

for i in range(len(C)):
    C[i] *= -1
    bb += C[i] // b
    C[i] %= b
    C[i] *= -1
heapify(C)
ans = max(ans, f(aa, bb))
for i in range(aa - 1, -1, -1):
    c = -heappop(C)
    c += a
    bb += c // b
    c %= b
    heappush(C, -c)
    ans = max(ans, f(i, bb))

print(ans)
0