98492024-03-11 23:41:3742Maximális szorzat (50 pont)python3Wrong answer 44/50200ms37400 KiB
# O(NlogN)
from sys import stdin, stdout
input=stdin.readline
mod=10**9+7

def solv():
    N,K,b = [int(x) for x in input().split()]
    A = [int(x) for x in input().split()]
    #print(A,N,K,b)
    Aplus=[]
    Aminus=[]
    for a in A:
        if a<0:
            Aminus.append(a)
        else:
            Aplus.append(a)
    if len(Aminus)<b:
        print(-1)
        return
    Aminus.sort(reverse=True)
    #print(Aminus,K,b)
    for i in range(len(Aminus)-b):
        K+=Aminus[i]
    if K<0:
        print(-1)
        return
    prod=1
    for i in range(len(Aminus)-b,len(Aminus)):
        prod*=-Aminus[i]
        prod%=mod
    if len(Aplus)==0:
        if len(Aminus)==b:
            print(-1)
            return
    for i in range(len(Aminus)-b):
        Aplus.append(0)
    Aplus.sort()
    Aplus.append(10**10)
    i=0
    while K>0:
        if i==0:
            Aplus[0]+=1
            K-=1
            i+=1
        else:
            if Aplus[i-1]>Aplus[i]:
                Aplus[i]+=1
                K-=1
                i+=1
            else:
                i=0
    #print(K,Aplus,prod)
    for i in range(len(Aplus)-1):
        prod*=Aplus[i]
        prod%=mod
    print(prod)
    
solv()

SubtaskSumTestVerdictTimeMemory
base44/50
1Accepted0/017ms11672 KiB
2Accepted0/017ms11832 KiB
3Accepted0/017ms12100 KiB
4Accepted0/017ms12404 KiB
5Accepted0/027ms14452 KiB
6Accepted2/217ms12468 KiB
7Accepted2/218ms12788 KiB
8Accepted2/217ms12988 KiB
9Accepted2/218ms13076 KiB
10Accepted2/234ms15692 KiB
11Accepted2/2186ms35184 KiB
12Accepted1/1186ms34920 KiB
13Accepted1/119ms13684 KiB
14Accepted1/139ms15524 KiB
15Accepted1/146ms24612 KiB
16Accepted1/1135ms24620 KiB
17Accepted1/152ms24800 KiB
18Accepted1/141ms15192 KiB
19Wrong answer0/1115ms35332 KiB
20Wrong answer0/1101ms35972 KiB
21Wrong answer0/1119ms35696 KiB
22Accepted1/182ms29924 KiB
23Accepted1/1194ms36220 KiB
24Accepted1/1192ms35800 KiB
25Accepted2/228ms14272 KiB
26Accepted2/229ms16368 KiB
27Wrong answer0/267ms24792 KiB
28Wrong answer0/170ms24924 KiB
29Accepted2/241ms25780 KiB
30Accepted1/1200ms36532 KiB
31Accepted1/161ms35908 KiB
32Accepted2/298ms14656 KiB
33Accepted2/2197ms36740 KiB
34Accepted1/1190ms37004 KiB
35Accepted2/2192ms36952 KiB
36Accepted2/2197ms37328 KiB
37Accepted2/2194ms37396 KiB
38Accepted2/2200ms37400 KiB
39Accepted1/197ms15160 KiB