88302024-01-31 18:30:08NagyLeoBányász RPG (40 pont)python3Accepted 40/40232ms51868 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]])

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

    while all1 != experience:
        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

    return time


print(main())
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/017ms11292 KiB
2Accepted0/043ms18180 KiB
3Accepted2/217ms11596 KiB
4Accepted2/218ms11972 KiB
5Accepted2/234ms16996 KiB
6Accepted2/259ms23056 KiB
7Accepted2/223ms13656 KiB
8Accepted2/225ms14492 KiB
9Accepted3/317ms12472 KiB
10Accepted3/317ms12684 KiB
11Accepted3/317ms12884 KiB
12Accepted3/318ms13084 KiB
13Accepted4/418ms13340 KiB
14Accepted4/418ms13400 KiB
15Accepted2/2111ms34268 KiB
16Accepted2/2153ms42272 KiB
17Accepted2/2115ms35988 KiB
18Accepted2/2232ms51868 KiB