Cod sursa(job #1301405)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 25 decembrie 2014 22:06:59
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fi("grupuri.in");
ofstream fo("grupuri.out");

const int MAX_N = 100005;

long long i,n,k,a[MAX_N];

bool ok(long long gr){
     long long s=0;
     
     for(int j=1;j<=n;j++)
       s += min(gr,a[j]);
     
     if(s>=gr*k) return 1;
     return 0;
}

long long cautare_binara(){
     long long sol;
     long long st=0;
     long long dr=1LL*1000000*1000000;
     long long mijl;
     
     while(st!=dr){
                   mijl=(st+dr)>>1;
                   if(ok(mijl)){
                                sol=mijl;
                                st=mijl+1;
                               }
                   else dr=mijl;
                  }
     
     return sol;
}

int main(){
    fi>>k>>n;
    for(i=1;i<=n;i++) fi>>a[i];
    
    fo<<cautare_binara();
    
    fi.close();
    fo.close();
    return 0;
}