Cod sursa(job #132692)

Utilizator znakeuJurba Andrei znakeu Data 6 februarie 2008 13:45:34
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
int v[10]={1,2,4,8,16,32,64,128,256,512};
int w[502][502];
int z=1;

void wtfpwned(int x1, int y1, int x2, int y2)
{
	int k,i,j;
	for (k=8; k>=0; k--)
	{
		if (x1+v[k]<=x2 && y1+v[k]<=y2)
		{
			for (i=x1; i<x1+v[k]; i++)
				for (j=y1; j<y1+v[k]; j++)
					w[i][j]=z;
			z++;
			if (x1+v[k]<x2)
				wtfpwned(x1+v[k],y1,x2,y1+v[k]);
			if (y1+v[k]<y2)
				wtfpwned(x1,y1+v[k],x2,y2);
			return;
		}		
	}
}

int main()
{
	FILE *in  = fopen("piese.in","r");
	FILE *out = fopen("piese.out","w");
	int n,m,i,j;
	
	fscanf(in,"%d%d",&n,&m);
	wtfpwned(0,0,n,m);
	fprintf(out,"%d\n",z-1);
	for (i=0; i<n; i++)
	{
		for (j=0; j<m-1; j++)
			fprintf(out,"%d ",w[i][j]);
		fprintf(out,"%d\n",w[i][j]);	
	}
	
	
	return 0;
}