Pagini recente » Borderou de evaluare (job #1383531) | Cod sursa (job #1813277) | Cod sursa (job #1050523) | Borderou de evaluare (job #1837983) | Cod sursa (job #529505)
Cod sursa(job #529505)
#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;}