226932026-01-15 16:20:36vyrallBányász RPG (40 pont)python3Accepted 40/40263ms22852 KiB
n = int(input())
lvls = list(map(int, input().split()))
needed = list(map(int, input().split()))
if lvls != [lvls[0] for _ in range(n)]:
    lvls, needed = zip(*sorted(zip(lvls, needed)))
    lvls, needed = list(lvls), list(needed)
    lvl = 0
    time = 0

    l = 0
    r = n - 1

    while l <= r:
        if lvls[l] <= lvl:
            time += needed[l]
            lvl += needed[l]
            l += 1
        else:
            if needed[r] >= lvls[l] - lvl:
                 num = lvls[l] - lvl
            else:
                num = needed[r]
            lvl += num
            time += 2*num
            needed[r] -= num
            if needed[r] == 0:
                r -= 1
else:
    time = 2 * lvls[0] + sum(needed) - lvls[0]

print(time)
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/016ms3312 KiB
2Accepted0/050ms6612 KiB
3Accepted2/216ms3124 KiB
4Accepted2/217ms3124 KiB
5Accepted2/225ms5236 KiB
6Accepted2/232ms6992 KiB
7Accepted2/217ms3636 KiB
8Accepted2/218ms3884 KiB
9Accepted3/316ms3140 KiB
10Accepted3/316ms3124 KiB
11Accepted3/316ms3136 KiB
12Accepted3/316ms3124 KiB
13Accepted4/417ms3136 KiB
14Accepted4/416ms3212 KiB
15Accepted2/2144ms13996 KiB
16Accepted2/2182ms18108 KiB
17Accepted2/2148ms14856 KiB
18Accepted2/2263ms22852 KiB