Cod sursa(job #733689)

Utilizator danalex97Dan H Alexandru danalex97 Data 12 aprilie 2012 19:34:17
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;

ifstream f("piese.in"); ofstream g("piese.out");

int v[505][505];
int i, j, n, m, p;

void Acp (int x1, int y1, int x2, int y2)
{
	int d, k;
	
	p++;
	k=min(x2-x1+1, y2-y1+1);
	d=1;
	
	while (d*2<=k) 
		d*=2;
	
	for (i=x1; i<x1+d; i++)	
		for (j=y1; j<y1+d; j++) 
			v[i][j]=p;
	
	if (x1+d-1!=x2)
		Acp (x1+d, y1, x2, y1+d-1);
	if (y1+d-1!=y2) 
		Acp (x1, y1+d, x1+d-1, y2);
	if (x1+d-1!=x2 && y1+d-1!=y2)
		Acp (x1+d, y1+d, x2, y2);
}
  

int main()
{
	f>>n>>m;
	Acp (1,1, n, m);
	
	g<<p<<"\n";
	for (i=1; i<=n; i++)
	{
		for (j=1; j<=m; j++) 
			g<<v[i][j]<<" ";
		g<<"\n";
	}
}