Cod sursa(job #1789859)

Utilizator Lungu007Lungu Ionut Lungu007 Data 27 octombrie 2016 16:26:33
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#define NMAX 100002
using namespace std;

ifstream in("grupuri.in");
ofstream out("grupuri.out");

long long a[NMAX],n,k,st,dr,mij;
long long sum,r;

bool verf(long long x)
{
    long long v = 0,s=0;
    for(int i=0;i<n;i++)
    {
        v = min(a[i],x);
        s+=v;
    }
    if(s>=x*k)
    {
        return true;
    }
    else
    {
        return false;
    }
}

int main()
{
    in >> k >> n;
    for(int i=0;i<n;i++)
    {
        in >> a[i];
        sum+=a[i];
    }
    st = 1,dr = sum/k;

    while(st<=dr)
    {
        mij = (st+dr)/2;
      //  cout << mij << " ";
        if(verf(mij))
        {
            st = mij+1;
            r = mij;
        }
        else
        {
            dr = mij-1;
        }
    }
    out << r;

    return 0;
}