結果

問題 No.2076 Concon Substrings (ConVersion)
ユーザー 👑 rin204rin204
提出日時 2022-09-16 22:28:24
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,195 bytes
コンパイル時間 186 ms
コンパイル使用メモリ 82,456 KB
実行使用メモリ 79,004 KB
最終ジャッジ日時 2024-06-01 13:32:47
合計ジャッジ時間 3,888 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 39 ms
53,976 KB
testcase_01 AC 39 ms
54,188 KB
testcase_02 AC 39 ms
53,884 KB
testcase_03 AC 39 ms
53,980 KB
testcase_04 AC 39 ms
54,372 KB
testcase_05 AC 70 ms
73,756 KB
testcase_06 AC 43 ms
60,484 KB
testcase_07 AC 114 ms
77,196 KB
testcase_08 AC 105 ms
77,112 KB
testcase_09 AC 111 ms
77,220 KB
testcase_10 AC 39 ms
53,776 KB
testcase_11 AC 38 ms
52,940 KB
testcase_12 WA -
testcase_13 AC 39 ms
53,008 KB
testcase_14 AC 39 ms
53,436 KB
testcase_15 AC 99 ms
76,396 KB
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 AC 40 ms
52,880 KB
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 AC 100 ms
77,064 KB
testcase_27 AC 100 ms
76,204 KB
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
権限があれば一括ダウンロードができます

ソースコード

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