Cod sursa(job #1081844)

Utilizator dan.ghitaDan Ghita dan.ghita Data 13 ianuarie 2014 22:12:09
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int n, k, v[100005], st, dr, out;
long long sum, mid, mx;

int check()
{
    sum=0;
    for(int i=n; i>0; --i)
        sum+=min(mid, (long long)v[i]);
    if(sum>=mid*k) return 1;
    return 0;
}

int bin_src()
{
    st=1, dr=mx/k;
    while(st<=dr)
    {
        mid=(st+dr)/2;
        if(check())
            out=mid, st=mid+1;
        else
            dr=mid-1;
    }
}

int main()
{
    f>>k>>n;
    for(int i=1; i<=n; ++i)
        f>>v[i], mx+=v[i];
    bin_src();
    g<<out;
    return 0;
}