Cod sursa(job #530000)

Utilizator cat_red20Vasile Ioana cat_red20 Data 6 februarie 2011 17:30:46
Problema Piese Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#include<math.h>
int p,u,i,j,m,n,t,a[150*150+1],mij,min,x;
double s;
FILE *fin,*fout;
int main(){
	int max=0;
fin=fopen("livada.in","r");
fout=fopen("livada.out","w");
fscanf(fin,"%d %d %d",&n,&m,&x);
for(i=1;i<=n*m;i++){
	fscanf(fin,"%d",&a[i]);
	if(a[i]>max){max=a[i];}
}
p=1;
u=max;
if(x==1){
fprintf(fout,"%d",max);
return 0;
}
while(p<=u){
	mij=(p+u)/2;
	s=0;
	for(i=1;i<=n*m;i++){
		if(a[i]>mij){
			s=s+ceill(1.0*(a[i]-mij)/(x-1));
		}
	}
	if(s<=mij){
		u=mij-1;
		min=mij;
	}
	else
		p=mij+1;
	
}
fprintf(fout,"%d",min);
return 0;}