Cod sursa(job #2398098)

Utilizator NashikAndrei Feodorov Nashik Data 5 aprilie 2019 08:30:51
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
//#include <iostream>
#include <fstream>
using namespace std;
long long n,k,v[100005],solutie;
bool valid(long long a){
    long long suma=0;
    for(int i=1;i<=n;i++){
        suma+=min(v[i],a);
    }
    if(suma>=a*k)
        return true;
    return false;
}
void cautbin(long long st,long long dr){
    if(st>dr){
        return;
    }
    long long mid=(st+dr)/2;
    if(valid(mid)==true){
        st=mid+1;
        solutie=mid;
    }
    else
        dr=mid-1;
    cautbin(st,dr);
}
int main()
{
    ifstream cin("grupuri.in");
    ofstream cout("grupuri.out");
    long long suma=0;
    cin>>k>>n;
    for(int i=1;i<=n;i++){
        cin>>v[i];
        suma+=v[i];
    }
    cautbin(1,suma);
    cout<<solutie;
    return 0;
}