213902026-01-12 23:06:31algoproBányász RPG (40 pont)pypy3Időlimit túllépés 32/40402ms32000 KiB
# UUID: 9ec0d032-5920-433d-b2cf-ed317ad7d488
from array import array

def solvx():
    N = int(input())
    A = array('l', [int(x) for x in input().split()])
    B = array('l', [int(x) for x in input().split()])
    
    def merge_sort(lo, hi):
        if hi - lo <= 1:
            return
        mid = (lo + hi) // 2
        merge_sort(lo, mid)
        merge_sort(mid, hi)

        i, j = lo, mid
        while i < j and j < hi:
            if A[i] <= A[j]:
                i += 1
            else:
                ai = A[j]
                bi = B[j]
                k = j
                while k > i:
                    A[k] = A[k-1]
                    B[k] = B[k-1]
                    k -= 1
                A[i] = ai
                B[i] = bi
                i += 1
                j += 1

    merge_sort(0, N)

    total_second = sum(B)
    ketpercesek = 0
    running_prefix = total_second

    for pos in range(N - 1, -1, -1):
        running_prefix -= B[pos]

        if A[pos] > ketpercesek + running_prefix:
            need = A[pos] - (ketpercesek + running_prefix)
            if need < B[pos]:
                ketpercesek += need
            else:
                ketpercesek += B[pos]

    print(ketpercesek + total_second)

solvx()
RészfeladatÖsszpontTesztVerdiktIdőMemória
base32/40
1Elfogadva0/039ms19820 KiB
2Időlimit túllépés0/0319ms24484 KiB
3Elfogadva2/243ms19568 KiB
4Elfogadva2/250ms21472 KiB
5Elfogadva2/272ms24296 KiB
6Elfogadva2/293ms25912 KiB
7Elfogadva2/267ms22764 KiB
8Elfogadva2/282ms24188 KiB
9Elfogadva3/337ms19676 KiB
10Elfogadva3/345ms19900 KiB
11Elfogadva3/343ms19688 KiB
12Elfogadva3/352ms21484 KiB
13Elfogadva4/456ms21732 KiB
14Elfogadva4/461ms21756 KiB
15Időlimit túllépés0/2388ms27108 KiB
16Futási hiba0/279ms32000 KiB
17Időlimit túllépés0/2402ms27372 KiB
18Futási hiba0/276ms32000 KiB