213902026-01-12 23:06:31algoproBányász RPG (40 pont)pypy3Time limit exceeded 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()
SubtaskSumTestVerdictTimeMemory
base32/40
1Accepted0/039ms19820 KiB
2Time limit exceeded0/0319ms24484 KiB
3Accepted2/243ms19568 KiB
4Accepted2/250ms21472 KiB
5Accepted2/272ms24296 KiB
6Accepted2/293ms25912 KiB
7Accepted2/267ms22764 KiB
8Accepted2/282ms24188 KiB
9Accepted3/337ms19676 KiB
10Accepted3/345ms19900 KiB
11Accepted3/343ms19688 KiB
12Accepted3/352ms21484 KiB
13Accepted4/456ms21732 KiB
14Accepted4/461ms21756 KiB
15Time limit exceeded0/2388ms27108 KiB
16Runtime error0/279ms32000 KiB
17Time limit exceeded0/2402ms27372 KiB
18Runtime error0/276ms32000 KiB