213852026-01-12 22:48:49algoproBányász RPG (40 pont)pypy3Futási hiba 32/4078ms32000 KiB
# UUID: 96bde295-3d14-4621-84f5-d5538e9a4195
def solvx():
    import sys

    data = sys.stdin.read().strip().split()
    N = int(data[0])

    A = list(map(int, data[1:1+N]))
    B = list(map(int, data[1+N:1+2*N]))

    idx = list(range(N))
    idx.sort(key=lambda i: A[i])

    prefix = [0]*(N+1)
    for j in range(N):
        prefix[j+1] = prefix[j] + B[idx[j]]

    ketpercesek = 0

    for pos in range(N-1, -1, -1):
        i = idx[pos]
        if A[i] > ketpercesek + prefix[pos]:
            if ketpercesek + prefix[pos] + B[i] > A[i]:
                ketpercesek += A[i] - (ketpercesek + prefix[pos])
            else:
                ketpercesek += B[i]

    print(ketpercesek + prefix[N])

def solv():
    N = int(input())
    prefix = [int(x) for x in input().split()] + [0]
    V = [(prefix[i],int(x)) for i,x in enumerate(input().split())]

    V.sort()

    prefix[0] = 0
    prefix[1] = V[0][1]
    for i in range(1, N):
        prefix[i + 1] = prefix[i] + V[i][1]

    ketpercesek = 0

    for i in range(N - 1, -1, -1):
        if V[i][0] > ketpercesek + prefix[i]:
            if ketpercesek + prefix[i] + V[i][1] > V[i][0]:
                ketpercesek += V[i][0] - (ketpercesek + prefix[i])
            else:
                ketpercesek += V[i][1]

    print(ketpercesek + prefix[N])


solvx()
RészfeladatÖsszpontTesztVerdiktIdőMemória
base32/40
1Elfogadva0/039ms19696 KiB
2Elfogadva0/070ms24312 KiB
3Elfogadva2/243ms19612 KiB
4Elfogadva2/252ms21368 KiB
5Elfogadva2/264ms23696 KiB
6Elfogadva2/264ms28856 KiB
7Elfogadva2/257ms21756 KiB
8Elfogadva2/252ms22500 KiB
9Elfogadva3/345ms19680 KiB
10Elfogadva3/341ms19808 KiB
11Elfogadva3/341ms19616 KiB
12Elfogadva3/348ms21228 KiB
13Elfogadva4/446ms21540 KiB
14Elfogadva4/443ms21144 KiB
15Futási hiba0/278ms32000 KiB
16Futási hiba0/272ms32000 KiB
17Futási hiba0/270ms32000 KiB
18Futási hiba0/261ms32000 KiB