Cod sursa(job #2351787)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 22 februarie 2019 18:12:19
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n,i,j,k,v[100001];
long long st,dr,mid,ok;
int verifica(long long x){
    unsigned long long necesar=x*1ULL*k,total=0;
    for(i=1;i<=n;i++)
        if(v[i]>x)total+=x;
        else total+=v[i];

    if(total<necesar)return 0;
    return 1;
}
int main()
{
    fin>>k>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    st=0;
    dr=(1LL<<62)-1;
    while(st<=dr){
        mid=(st+dr)/2;
        ok=verifica(mid);
        if(ok==1)st=mid+1;
        else dr=mid-1;
    }
    fout<<dr;
    return 0;
}