Cod sursa(job #2541402)

Utilizator Iulia25Hosu Iulia Iulia25 Data 8 februarie 2020 13:22:53
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

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

int n, m, k;
int a[505][505];

void idk(int ls, int cs, int lj, int cj, int x)	{
	int aux = 0;
	for (int i = 1;; i <<= 1)	 {
		if (ls + i <= lj + 1 && cs + i <= cj + 1)
			aux = i;
		else
			break;
	}
	for (int i = 0; i < aux; ++i)	{
		for (int j = 0; j < aux; ++j)	{
			a[ls + i][cs + j] = x;
		}
	}
}

int main()	{
	fin >> n >> m;
	for (int i = 1; i <= n; ++i)	{
		for (int j = 1; j <= m; ++j)	{
			if (!a[i][j])
				idk(i, j, n, m, ++k);
		}
	}
	fout << k << '\n';
	for (int i = 1; i <= n; ++i)	{
		for (int j = 1; j <= m; ++j)	{
			fout << a[i][j] << ' ';
		}
		fout << '\n';
	}
	return 0;
}