202102026-01-04 23:38:27algoproBányász RPG (40 pont)pypy3Runtime error 36/40148ms32000 KiB
# UUID: daabe528-252d-4f10-9fd0-9a202cd073c8
N = int(input())
exp = [int(x) for x in input().split()]
mat = [int(x) for x in input().split()]

time = 0
whole = []
experience = 0
cheapest = N - 1
expensive = 0

for i in range(0, N):
    whole.append([mat[i], exp[i]])

whole.sort(key=lambda x: -x[1])

while expensive <= cheapest:
    if whole[cheapest][1] <= experience:
        time += whole[cheapest][0]
        experience += whole[cheapest][0]
        cheapest -= 1
    else:
        minimum = min(whole[expensive][0], whole[cheapest][1] - experience)
        time += minimum * 2
        experience += minimum
        whole[expensive][0] -= minimum
        if whole[expensive][0] == 0:
            expensive += 1

print(time)
SubtaskSumTestVerdictTimeMemory
base36/40
1Accepted0/043ms19556 KiB
2Accepted0/082ms24680 KiB
3Accepted2/239ms19468 KiB
4Accepted2/245ms21256 KiB
5Accepted2/259ms22784 KiB
6Accepted2/276ms27324 KiB
7Accepted2/254ms22360 KiB
8Accepted2/264ms22504 KiB
9Accepted3/345ms19496 KiB
10Accepted3/341ms19684 KiB
11Accepted3/343ms19504 KiB
12Accepted3/345ms21224 KiB
13Accepted4/445ms21160 KiB
14Accepted4/443ms21100 KiB
15Accepted2/2148ms31664 KiB
16Runtime error0/278ms32000 KiB
17Accepted2/2140ms31756 KiB
18Runtime error0/271ms32000 KiB