Cod sursa(job #1280788)

Utilizator Laura.miLaura Mitrache Laura.mi Data 2 decembrie 2014 14:41:10
Problema Grupuri Scor 62
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
//#include <iostream>
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int n, k;
long long ret =-1;
int a[100003];
int mini;
long long maxi;
void Citire()
{
    f>>k>>n;
    int i;
    for(i=1;i<=n;i++)
    {
         f>>a[i];
         maxi +=a[i];
    }
    mini = a[1];

}
int Check(long long x)
{
    long long suma1;
    long long suma2 =0;
    int i=1;
    while(a[i] < x)
    {
        suma2 +=a[i];
        i++;
    }
    suma1 = 1LL*(k-(n-i+1))*x;
    //cout<<suma1<<"\n";
    if(suma2 >= suma1)
    return 1;
    return 0;

}
void Caut_bin()
{
    long long st,dr,mij;
    st = mini;
    dr = maxi;
    while(st<=dr)
    {
        //cout<<"st= "<<st;
        //cout<<" dr= "<<dr<<"\n";
        mij = (st+dr)/2;
        if(Check(mij) == 1)
        {
            ret = mij;
            st = mij+1;
        }
        else
        dr = mij-1;

    }
    //cout<<Check(4);
}

int main()
{
    Citire();
    Caut_bin();
    g<<ret<<"\n";

    return 0;
}