Cod sursa(job #1146069)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 18 martie 2014 18:01:35
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long K,N,S;
long long Array[100005];
void Read()
{
    int i;
    f>>K>>N;
    for(i=1;i<=N;i++)
        f>>Array[i],S+=Array[i];
}
bool Result(long long groups)
{
    long long i=N,sum=0;
    for(;i>=1;i--)
    {
        if(Array[i]>=groups)
            sum+=groups;
        else
            sum+=Array[i];
    }

    if(sum>=groups*K)
        return 1;
    return 0;
}
void Binary_Search()
{
    long long st=1,dr=S/K;
    long long sol=0;
    while(st<=dr)
    {
        int mid=(st+dr)/2;
        if(Result(mid)==1)
        {
            sol=mid;
            st=mid+1;
        }
        else
            dr=mid-1;
    }
    g<<sol<<"\n";
}
int main()
{
    Read();
    Binary_Search();
    return 0;
}