結果

問題 No.1739 Princess vs. Dragoness (& AoE)
ユーザー ShirotsumeShirotsume
提出日時 2021-10-29 12:30:07
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 323 ms / 3,000 ms
コード長 1,001 bytes
コンパイル時間 281 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 119,568 KB
最終ジャッジ日時 2024-05-04 04:17:22
合計ジャッジ時間 8,834 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 43 ms
53,632 KB
testcase_01 AC 43 ms
53,632 KB
testcase_02 AC 47 ms
53,760 KB
testcase_03 AC 60 ms
60,160 KB
testcase_04 AC 266 ms
100,372 KB
testcase_05 AC 311 ms
119,568 KB
testcase_06 AC 204 ms
102,364 KB
testcase_07 AC 53 ms
60,672 KB
testcase_08 AC 108 ms
84,224 KB
testcase_09 AC 126 ms
90,752 KB
testcase_10 AC 181 ms
82,896 KB
testcase_11 AC 149 ms
80,512 KB
testcase_12 AC 60 ms
66,944 KB
testcase_13 AC 180 ms
87,916 KB
testcase_14 AC 231 ms
94,456 KB
testcase_15 AC 215 ms
93,408 KB
testcase_16 AC 206 ms
87,168 KB
testcase_17 AC 143 ms
82,644 KB
testcase_18 AC 209 ms
89,708 KB
testcase_19 AC 108 ms
83,036 KB
testcase_20 AC 93 ms
78,336 KB
testcase_21 AC 142 ms
90,752 KB
testcase_22 AC 200 ms
90,940 KB
testcase_23 AC 263 ms
102,276 KB
testcase_24 AC 323 ms
118,708 KB
testcase_25 AC 283 ms
110,400 KB
testcase_26 AC 303 ms
107,472 KB
testcase_27 AC 297 ms
115,756 KB
testcase_28 AC 280 ms
107,244 KB
testcase_29 AC 296 ms
117,508 KB
testcase_30 AC 285 ms
108,872 KB
testcase_31 AC 288 ms
110,596 KB
testcase_32 AC 313 ms
119,172 KB
testcase_33 AC 55 ms
61,824 KB
testcase_34 AC 55 ms
61,184 KB
testcase_35 AC 59 ms
65,280 KB
testcase_36 AC 57 ms
64,640 KB
testcase_37 AC 55 ms
62,848 KB
testcase_38 AC 61 ms
63,360 KB
testcase_39 AC 61 ms
63,616 KB
testcase_40 AC 57 ms
61,568 KB
testcase_41 AC 62 ms
63,360 KB
testcase_42 AC 64 ms
64,768 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = lambda: sys.stdin.readline().rstrip()
n, a, b, x, y = map(int,input().split())
h = list(map(int,input().split()))
def solve(n, a, b, x, y, h):
    h.sort()
    from collections import deque
    def check(k):
        q1 = deque()
        q2 = deque()
        for i in range(n):
            q1.append(max(h[i] - k, 0))
        for _ in range(a):
            now = 0
            if not q1:
                now = q2.popleft()
            elif not q2:
                now = q1.pop()
            
            elif q1[-1] >= q2[0]:
                now = q1.pop()
            else:
                now = q2.popleft()
            now = max(now - x, 0)
            q2.append(now)
        if sum(q1) + sum(q2) <= b * y:
            return True
        else:
            return False
    ok = 10 ** 9
    ng = -1

    while abs(ok - ng) > 1:
        mid = (ok + ng) // 2
        if check(mid):
            ok = mid
        else:
            ng = mid
    return ok
print(solve(n, a, b, x, y, h))
0