Pagini recente » Cod sursa (job #822972) | Arhiva de probleme | Cod sursa (job #2391566) | Cod sursa (job #1353543) | Cod sursa (job #410179)
Cod sursa(job #410179)
#include <stdio.h>
int a[505][505];
int t,n,m,i,ii,j,jj,p2,min;
int main(){
FILE *f = fopen("piese.in","r");
FILE *g = fopen("piese.out","w");
fscanf(f,"%d %d",&n, &m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==0) {
min = n-i+1;
if (min>m-j+1)
min = m-j+1;
p2 = 1;
while (2*p2<=min)
p2 = p2*2;
t++;
for (ii=i;ii<=i+p2-1;ii++)
for (jj=j;jj<=j+p2-1;jj++)
a[ii][jj] = t;
}
fclose(f);
fprintf(g,"%d\n",t);
for (i=1;i<=n;i++) {
for (j=1;j<=m;j++)
fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
fclose(g);
return 0;
}