Pagini recente » Cod sursa (job #1143047) | Cod sursa (job #2589588) | Cod sursa (job #2891321) | Cod sursa (job #1682171) | Cod sursa (job #1458322)
#include <iostream>
#include <stdio.h>
using namespace std;
int v[100001];
bool valid(int mij, int n, int k)
{
int sum=0;
for(int i=1; i<=n; i++){
if(v[i]<=mij)
sum=sum+v[i];
else sum=sum+mij;
}
if(sum>=mij*k)
return true;
return false;
}
int main()
{
FILE *fin=fopen("grupuri.in", "r");
FILE *fout=fopen("grupuri.out", "w");
int k, n, st=100000000, dr, mij, gr;
fscanf(fin, "%d%d", &k, &n);
dr=0;
for(int i=1; i<=n; i++){
fscanf(fin, "%d", &v[i]);
if(v[i]<st)
st=v[i];
dr+=v[i];
}
while(st<dr){
mij=(st+dr)/2;
if(valid(mij, n, k)){
gr=mij;
st=mij+1;
}
else{
dr=mij-1;
}
}
fprintf(fout, "%d", gr);
return 0;
}