Cod sursa(job #2351183)
Utilizator | Data | 22 februarie 2019 07:55:46 | |
---|---|---|---|
Problema | Grupuri | Scor | 74 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n,a[100100],k,sum,sum1,medie,st,dr,mid;
int main(){
fin>>k>>n;
for(int i=1;i<=n;i++){
fin>>a[i];
sum+=a[i];
}
medie=sum/k;
st=1;
dr=medie;
while (st<=dr) {
mid=st+(dr-st)/2;
sum1=0;
for(int i=1;i<=n;i++){
sum1+=min(mid, a[i]);
}
if (sum1>= k * mid){
st = mid+1;
}
else{
dr = mid-1;
}
}
fout<<dr;
}