171182025-05-23 18:05:25ercseferencMaximális szorzat (50 pont)cpp17Hibás válasz 6/5071ms1840 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(b!=0 && a[b-1]>=0){cout<<-1; return 0;}
    long long s=0,t=b;
    if(n!=b){
        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]++;
        if(a[b]<0){cout<<-1; return 0;}}
    else{
        if(a[1]-a[0]<k){
            int r=1;
            while(k-r*(a[r]-a[r-1])>=0 && r<n-1){
                k-=r*(a[r]-a[r-1]); r++;}
            for(int i=0; i<r; i++)a[i]=a[r];
            for(int i=0; i<=r; i++)a[i]+=k/(r+1);
            k=k%(r+1);
            for(int i=0; i<k; i++)a[i]++;}
        else a[0]+=k;
        for(int i=0; i<n; i++)
            if(a[i]>=0){cout<<-1; return 0;}}
    for(int i=0; i<n; i++)cout<<a[i]<<" ";
    s=1; int mod=1000000007;
    for(int i=0; i<n; i++)s=(s*a[i])%mod;
    cout<<s;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/01ms316 KiB
4Hibás válasz0/01ms316 KiB
5Hibás válasz0/04ms388 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms508 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/21ms508 KiB
10Hibás válasz0/26ms316 KiB
11Hibás válasz0/264ms1576 KiB
12Hibás válasz0/168ms1568 KiB
13Hibás válasz0/11ms316 KiB
14Hibás válasz0/16ms484 KiB
15Elfogadva1/119ms564 KiB
16Hibás válasz0/128ms880 KiB
17Elfogadva1/119ms564 KiB
18Hibás válasz0/116ms564 KiB
19Hibás válasz0/152ms1360 KiB
20Hibás válasz0/141ms1148 KiB
21Hibás válasz0/171ms1824 KiB
22Elfogadva1/123ms564 KiB
23Hibás válasz0/170ms1776 KiB
24Hibás válasz0/168ms1568 KiB
25Hibás válasz0/21ms316 KiB
26Hibás válasz0/27ms316 KiB
27Hibás válasz0/235ms1072 KiB
28Hibás válasz0/137ms908 KiB
29Elfogadva2/221ms800 KiB
30Hibás válasz0/171ms1824 KiB
31Elfogadva1/141ms564 KiB
32Hibás válasz0/21ms316 KiB
33Hibás válasz0/271ms1828 KiB
34Hibás válasz0/171ms1832 KiB
35Hibás válasz0/271ms1828 KiB
36Hibás válasz0/271ms1840 KiB
37Hibás válasz0/271ms1824 KiB
38Hibás válasz0/271ms1836 KiB
39Hibás válasz0/11ms316 KiB