Cod sursa(job #1695114)

Utilizator narcios_neculaNarcis Necula narcios_necula Data 26 aprilie 2016 16:34:23
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int k,n,i,v[100002];
long long s,c1,c2,sol,mij;
bool ok(long long x)
{
    int i;
    long long t = 0;
    for(i = 1;i <= n; ++i)
    {
        if(v[i] > x)
            t += x;
        else
            t += v[i];
    }
    if(x * k <= t)
        return 1;
    return 0;
}
int main()
{
    f >> k >> n;
    for(i = 1; i <= n; ++i)
    {
        f >> v[i];
        s += v[i];
    }
    c1 = 1;
    c2 = s / k;
    while(c1 <= c2)
    {
        mij = (c1 + c2) / 2;
        if(ok(mij))
        {
            sol = mij;
            c1 = mij + 1;
        }
        else
            c2 = mij - 1;
    }
    g << sol << '\n';
    return 0;
}