Cod sursa(job #1668700)

Utilizator valentin11cCraciun Valentin-Gabriel valentin11c Data 29 martie 2016 23:36:53
Problema Grupuri Scor 58
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("grupuri.in");
ofstream g("grupuri.out");
int k,n,a[100005]; long long suma=0;

void citire()
{
    f>>k>>n;
    for(int i=1;i<=n;i++)
    {
        f>>a[i];suma+=(long long) a[i];
    }
}
long long bin()
{

    long long st=1,dr=suma,h,s=0;
    while(st<=dr)
    {
        h=(long long) (st+dr)/2;
        s=0;
        for(int i=1;i<=n;i++) if(a[i]<h) s+=a[i];else s+=h;
        if(s/k>=h) {st=h+1;} else dr=h-1;
    }
    s=0;
       while(1==1){ for(int i=1;i<=n;i++) if(a[i]<h) s+=a[i];else s+=h; if(s/k>=h) return st; else return st-1;h--;}
}
void solve()
{
    g<<bin();
}

int main()
{
    citire();
    solve();

    return 0;
}