Cod sursa(job #529505)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 5 februarie 2011 12:44:29
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
FILE*fin,*fout;
int n,m,a[501][501],i,j,max,p;

int putere(int x){
int p=1,nr;
while(p*2<=x){
p=p*2;
}

return p;
}


int main(){

fin=fopen("piese.in","r");
fout=fopen("piese.out","w");
fscanf(fin,"%d %d",&m,&n);
int min,l,k=0,c,b;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){

	
	if(a[i][j]==0){
	min=m-i+1;
      if(min>n-j+1){min=n-j+1;}
       	 l=putere(min);
         k++;
		  for(c=i;c<=i+l-1;c++){
		  
		  for(b=j;b<=j+l-1;b++){a[c][b]=k;}
		  }

	  
	}
}

}

fprintf(fout,"%d\n",k);
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
fprintf(fout,"%d ",a[i][j]);
}
fprintf(fout,"\n");
}

return 0;}