Cod sursa(job #2164563)

Utilizator bleo16783FMI Bleotiu Cristian bleo16783 Data 13 martie 2018 08:09:09
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include<fstream>
#include<cstdio>
using namespace std;
#define N 100100
int v[N],n,i,k;
long long x,s;
bool check(long long nr)
{
    long long x;
    x=min(nr,1ll*v[0]);
    for(i=1;i<n;++i)
        x+=min(nr,1ll*v[i]);
    if(x>=1ll*nr*k)
        return 1;
    return 0;
}
int main()
{
    ifstream f("grupuri.in");
    ofstream g("grupuri.out");
    f.sync_with_stdio(false);
    g.sync_with_stdio(false);
    f>>k>>n;
    for(int i=0;i<n;++i)
    {
        f>>v[i];
        s+=v[i];
    }
    long long i=1;
    long long ans=0;
    for(;i<=s/k;i<<=1);
    for(;i;i>>=1)
    {
        if(ans+i<=s/k && check(ans+i) )
            ans+=i;
    }
    g<<ans;
    return 0;
}