Nu aveti permisiuni pentru a descarca fisierul grader_test8.ok
Cod sursa(job #197153)
Utilizator | Data | 2 iulie 2008 08:29:15 | |
---|---|---|---|
Problema | Grupuri | Scor | 74 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <stdio.h>
#define DIM 100002
long int n,k,s,p,u,m,i,S;
long int A[DIM];
int merge(int x) {
s = 0;
for (i=1;(i<=n);i++) {
if (A[i]<=x) s+=A[i];
else s+=x;
}
if (s<k*x) return 0;
else return 1;
}
int main(){
FILE *f = fopen("grupuri.in","r");
fscanf(f,"%ld %ld",&k,&n);
for (i=1;i<=n;i++) {
fscanf(f,"%d",&A[i]);
S+=A[i];
}
fclose(f);
p=1;
u=S/k+1;
while (p<=u) {
m=(p+u)/2;
if (merge(m))
p=m+1;
else
u=m-1;
}
FILE *g = fopen("grupuri.out","w");
fprintf(g,"%ld",u);
fclose(g);
return 0;
}