Cod sursa(job #2796488)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 8 noiembrie 2021 11:47:23
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
long long v[100005],k,n;
long long f(long long a)
{
    long long cnt=0;
    for(long long i=1; i<=n; i++)
    {
        if(v[i]<=a)
            cnt+=v[i];
        else
            cnt+=a;
    }
    if(cnt>=k*a)
        return 1;
    else return 0;
}
int main()
{
    long long sum=0;
    cin>>k>>n;
    for(long long i=1; i<=n; i++)
    {
        cin>>v[i];
        sum+=v[i];
    }
    long long i1=1,i2=sum/k,mij,rez=-1;
    while(i1<=i2)
    {
        mij=(i1+i2)/2;
        if(f(mij)==1)
        {
            rez=mij;
            i1=mij+1;
        }
        else
            i2=mij-1;
    }
    cout<<rez;
    return 0;
}