170962025-05-22 17:08:33ercseferencMaximális szorzat (50 pont)cpp17Hibás válasz 29/5061ms820 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,b; long long k; //ifstream f("szamok.txt");
    cin>>n>>k>>b; vector<int>a(n);
    for(int i=0; i<n; i++)cin>>a[i];
    sort(a.begin(),a.end());
    if(a[b-1]>=0){cout<<-1; return 0;}
    long long s=0,t=b;
    //if(n==b)t=0;
    while(k>s+(a[t]-a[t-1])*(t-b) && t<n){
        s+=(a[t]-a[t-1])*(t-b);
        t++;}
    for(int i=b; i<t; i++)a[i]=a[t-1];
    k-=s;
    for(int i=b; i<t; i++)a[i]+=k/(t-b);
    k=k%(t-b);
    for(int i=b; i<b+k; i++)a[i]++;
    s=1; int mod=1000000007;
    for(int i=0; i<n; i++)s=(s*a[i])%mod;
    if(a[b]>=0)cout<<s;
    else cout<<-1;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base29/50
1Hibás válasz0/01ms508 KiB
2Hibás válasz0/01ms316 KiB
3Elfogadva0/01ms508 KiB
4Elfogadva0/01ms316 KiB
5Elfogadva0/04ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/21ms348 KiB
9Hibás válasz0/22ms512 KiB
10Hibás válasz0/26ms316 KiB
11Hibás válasz0/254ms796 KiB
12Hibás válasz0/157ms800 KiB
13Elfogadva1/11ms316 KiB
14Elfogadva1/14ms500 KiB
15Elfogadva1/121ms564 KiB
16Elfogadva1/123ms608 KiB
17Elfogadva1/121ms564 KiB
18Hibás válasz0/110ms564 KiB
19Futási hiba0/143ms820 KiB
20Futási hiba0/130ms804 KiB
21Futási hiba0/161ms820 KiB
22Futási hiba0/125ms820 KiB
23Elfogadva1/161ms564 KiB
24Elfogadva1/157ms796 KiB
25Elfogadva2/21ms316 KiB
26Elfogadva2/26ms428 KiB
27Futási hiba0/229ms564 KiB
28Futási hiba0/130ms604 KiB
29Elfogadva2/223ms564 KiB
30Elfogadva1/161ms804 KiB
31Elfogadva1/143ms656 KiB
32Elfogadva2/21ms508 KiB
33Elfogadva2/261ms800 KiB
34Elfogadva1/161ms780 KiB
35Elfogadva2/261ms564 KiB
36Elfogadva2/261ms564 KiB
37Elfogadva2/261ms800 KiB
38Elfogadva2/261ms564 KiB
39Elfogadva1/11ms316 KiB