Cod sursa(job #125761)

Utilizator razvi9Jurca Razvan razvi9 Data 20 ianuarie 2008 17:43:54
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
int n,m,i,j,a[500][500],k;

int max(int n,int m)
{int x=1;
 while(x<=n&&x<=m) x=x<<1;
 x=x>>1;
 return x;}

void generate(int s1,int s2,int n,int m)
{if(!(n+1-s1)||!(m+1-s2)) return;
 int x=max(n+1-s1,m+1-s2);
 k++;
 for(i=s1;i<=s1+x-1;i++) for(j=s2;j<=s2+x-1;j++) a[i][j]=k;
 generate(s1+x,s2,n,s2+x-1);
 generate(s1,s2+x,n,m);}
 
int main()
{freopen("piese.in","r",stdin);
 freopen("piese.out","w",stdout);
 scanf("%d %d",&n,&m);
 generate(1,1,n,m);
 printf("%d\n",k);
 for(i=1;i<=n;i++)       {
  for(j=1;j<=m;j++)
   printf("%d ",a[i][j]);
  printf("\n");}
 fclose(stdout);
 return 0;}