201642026-01-03 16:34:58marnorlorOsztozkodás (75 pont)python3Time limit exceeded 70/75601ms15452 KiB
def osztozas(N: int, K: int, A: list):
    ajandekA=[]
    ajandekB=[]
    max2=0
    kOsszeg=0
    osszegA=0
    osszegB=0
    j=0
    A.sort(reverse=True)
    while True:
        #print(j, A, len(A))
        max2=A[j]
        if len(A)-j<=K:
            for i in range(j, len(A)):
                kOsszeg=kOsszeg+A[i]
            if kOsszeg>0:
                A=[]
                if j % 2==0:
                    ajandekA.append(kOsszeg)
                    osszegA=osszegA+kOsszeg
                if j % 2==1:
                    ajandekB.append(kOsszeg)
                    osszegB=osszegB+kOsszeg
            else:
                if j % 2==0:
                    ajandekA.append(max2)
                    osszegA=osszegA+max2
                if j % 2==1:
                    ajandekB.append(max2)
                    osszegB=osszegB+max2
        else:
            if j % 2==0:
                    ajandekA.append(max2)
                    osszegA=osszegA+max2
            if j % 2==1:
                    ajandekB.append(max2)
                    osszegB=osszegB+max2
        kOsszeg=0
        j=j+1
        if len(A)==j or len(A)==0:
            break
    return osszegA, osszegB

def test():
    a, b=osztozas(5, 3, [-2, 3, -1, 4, 5])
    print(a, b)
    assert 6==a
    assert 3==b

    a, b=osztozas(5, 3, [1, 4, 2, 4, 5])
    print(a, b)
    assert 12==a
    assert 4==b  
    a, b=osztozas(5, 3, [2, 3, 1, 5, 4])
    assert 11==a
    assert 4==b

    a, b=osztozas(5, 0, [2, 3, 1, 5, 4])
    assert 9==a
    assert 6==b

    a, b=osztozas(2, 2, [-5, 3])
    assert 3==a
    assert -5==b

    N=100000
    E=[0]*N
    for i in range(0, N):
        E[i]=i
    a, b=osztozas(N, 0, E)
    assert 2500000000==a
    assert 2499950000==b
    
    a, b=osztozas(20, 5, [7, 8, -4, 3, 10, 7, 4, 10, 6, 1, -1, 4, -1, -2, 3, -1, 4, -2, -3, 5])
    assert 32==a
    assert 26==b

def futtatas():
    N, K=map(int,input().split())
    A=list(map(int,input().split()))
    a, b=osztozas(N, K, A)
    print(a, b)

#test()
futtatas()
SubtaskSumTestVerdictTimeMemory
base70/75
1Accepted0/017ms3416 KiB
2Accepted0/017ms3364 KiB
3Accepted2/217ms3364 KiB
4Accepted3/317ms3356 KiB
5Accepted3/317ms3164 KiB
6Accepted2/218ms3636 KiB
7Accepted3/319ms3656 KiB
8Accepted2/219ms3680 KiB
9Accepted3/319ms3636 KiB
10Accepted2/218ms3636 KiB
11Accepted3/318ms3636 KiB
12Accepted1/1126ms14156 KiB
13Accepted2/2112ms14168 KiB
14Accepted1/1119ms14204 KiB
15Accepted2/290ms14424 KiB
16Accepted1/1109ms13728 KiB
17Accepted2/2119ms14744 KiB
18Accepted1/1108ms13872 KiB
19Accepted2/290ms12060 KiB
20Accepted2/279ms11764 KiB
21Accepted3/3127ms15020 KiB
22Accepted2/2125ms14904 KiB
23Accepted3/3119ms15452 KiB
24Accepted2/2119ms14788 KiB
25Accepted3/3136ms15036 KiB
26Accepted2/2130ms15044 KiB
27Time limit exceeded0/3601ms14136 KiB
28Time limit exceeded0/2583ms14388 KiB
29Accepted3/3128ms14108 KiB
30Accepted3/317ms3380 KiB
31Accepted3/316ms3380 KiB
32Accepted3/316ms3384 KiB
33Accepted3/316ms3380 KiB
34Accepted3/316ms3380 KiB