200842026-01-01 11:35:22marnorlorOsztozkodás (75 pont)python3Time limit exceeded 40/75601ms15044 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:
        max2=A[0]
        if len(A)<=K:
            for i in A:
                kOsszeg=kOsszeg+i
            if kOsszeg<max2:
                if j % 2==0:
                    ajandekA.append(max2)
                    osszegA=osszegA+max2
                if j % 2==1:
                    ajandekB.append(max2)
                    osszegB=osszegB+max2
                A.remove(max2)
            else:
                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
            A.remove(max2)
        kOsszeg=0
        if len(A)==0:
            break
        j=j+1
    return osszegA, osszegB

def test():
    a, b=osztozas(5, 3, [-2, 3, -1, 4, 5])
    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
base40/75
1Accepted0/017ms3360 KiB
2Accepted0/017ms3372 KiB
3Accepted2/217ms3376 KiB
4Accepted3/316ms3380 KiB
5Accepted3/317ms3368 KiB
6Accepted2/218ms3556 KiB
7Accepted3/319ms3636 KiB
8Accepted2/219ms3716 KiB
9Accepted3/320ms3640 KiB
10Accepted2/219ms3636 KiB
11Accepted3/318ms3748 KiB
12Time limit exceeded0/1600ms14340 KiB
13Time limit exceeded0/2587ms14168 KiB
14Time limit exceeded0/1587ms14184 KiB
15Accepted2/283ms14168 KiB
16Time limit exceeded0/1582ms13872 KiB
17Time limit exceeded0/2583ms14884 KiB
18Time limit exceeded0/1601ms13680 KiB
19Time limit exceeded0/2600ms11840 KiB
20Time limit exceeded0/2587ms11808 KiB
21Time limit exceeded0/3583ms14852 KiB
22Time limit exceeded0/2577ms14872 KiB
23Time limit exceeded0/3577ms14856 KiB
24Time limit exceeded0/2578ms15044 KiB
25Time limit exceeded0/3580ms15044 KiB
26Time limit exceeded0/2601ms15044 KiB
27Time limit exceeded0/3601ms14140 KiB
28Time limit exceeded0/2583ms14208 KiB
29Time limit exceeded0/3583ms14172 KiB
30Accepted3/317ms3384 KiB
31Accepted3/317ms3184 KiB
32Accepted3/317ms3380 KiB
33Accepted3/317ms3576 KiB
34Accepted3/316ms3380 KiB