8832 2024. 01. 31 18:38:57 NagyLeo Bányász RPG (40 pont) python3 Elfogadva 40/40 194ms 48808 KiB
def main():
    N = int(input())
    exp = list(map(int, input().split()))
    mat = list(map(int, 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
            whole[expensive] = (whole[expensive][0] - minimum, whole[expensive][1])
            if whole[expensive][0] == 0:
                expensive += 1

    return time


print(main())
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 17ms 11400 KiB
2 Elfogadva 0/0 41ms 17828 KiB
3 Elfogadva 2/2 17ms 11528 KiB
4 Elfogadva 2/2 18ms 12244 KiB
5 Elfogadva 2/2 32ms 16920 KiB
6 Elfogadva 2/2 54ms 22628 KiB
7 Elfogadva 2/2 21ms 13600 KiB
8 Elfogadva 2/2 24ms 14372 KiB
9 Elfogadva 3/3 17ms 12604 KiB
10 Elfogadva 3/3 17ms 12772 KiB
11 Elfogadva 3/3 17ms 12744 KiB
12 Elfogadva 3/3 17ms 12840 KiB
13 Elfogadva 4/4 17ms 12692 KiB
14 Elfogadva 4/4 17ms 12940 KiB
15 Elfogadva 2/2 98ms 32348 KiB
16 Elfogadva 2/2 130ms 39896 KiB
17 Elfogadva 2/2 107ms 34156 KiB
18 Elfogadva 2/2 194ms 48808 KiB