Cod sursa(job #861398)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 21 ianuarie 2013 14:28:58
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream fin("piese.in");
ofstream fout("piese.out");

int a[503][503];
int n, m, i, j, k, ii, jj, nr;

int main() {
	fin>>n>>m;
	for (i=1;i<=n;i++) 
		for (j=1;j<=m;j++)
			if (a[i][j] == 0) {
				// caut cea mai mare putere a lui 2 asa incat i+2^k-1 <= n si j+2^k-1 <=m
				ii = i;
				jj = j;
				k = 1;
				while (i+k-1<=n && j+k-1<=m)
					k=k*2;
				k/=2;
				
				nr++;
				
				for(ii=i;ii<=i+k-1;ii++)
					for (jj=j;jj<=j+k-1;jj++)
						a[ii][jj] = nr;
			}
	fout<<nr<<"\n";
	for (i=1;i<=n;i++) {
		for (j=1;j<=m;j++)
			fout<<a[i][j]<<" ";
		fout<<"\n";
	}
	return 0;
}