Cod sursa(job #1704025)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 17 mai 2016 22:10:03
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int k,n,a[100005];
long long sum;
bool cond(int m)
{
    int i;
    long long s=0;
    for(i=1;i<=n;i++)
     s+=min(a[i],m);
    if(s>=m*1LL*k)
      return 1;
    return 0;
}
int BinarySearch(int st,int dr)
{
    int mij,sol;
    sol=-1;
    while(st<=dr)
    {
        mij=st+(dr-st)/2;
        if(cond(mij))
        {
            sol=mij;
            st=mij+1;
        }
        else
          dr=mij-1;
    }
    return sol;
}
int main()
{
    int i,x;
    f>>k>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        sum+=a[i];
    }
    sum/=k;
    x=BinarySearch(0,sum);
    g<<x;
    return 0;
}