Cod sursa(job #128304)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 26 ianuarie 2008 20:47:57
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream.h>
#include <math.h>

ifstream fin("piese.in");
ofstream fout("piese.out");

int n,m,a[505][505],min,ok=1;
void citire()
{
   fin>>n>>m;
}


void f (int x1,int y1,int x2,int y2)
{
int x,k;
    x=0;
while ((x1+(1<<x)-1)<= x2 && (y1+(1<<x)-1)<=y2) 
      x++;
      x--;
     k=1<<x;
     min++;
  for (int i=x1;i<x1+k;i++)
      for (int j=y1;j<y1+k;j++)
	  a[i][j]=min;

  if (x1+k<=n&& a[x1+k][y1]==0) f (x1+k,y1,n,m);
    if (y1+k<=m && a[x1][y1+k]==0)f (x1,y1+k,n,m);
}

void afisare()
{
   fout<<min<<"\n";
   for (int i=1;i<=n;i++)
   {
      for (int j=1;j<=m;j++)
	 fout<<a[i][j]<<" ";
      fout<<"\n";
   }
}

int main()
{
   citire();
   f(1,1,n,m);
   afisare();
   fin.close();
   fout.close();
   return 0;
}