98492024-03-11 23:41:3742Maximális szorzat (50 pont)python3Hibás válasz 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()

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