Pagini recente » Cod sursa (job #2892385) | Cod sursa (job #2066215) | Cod sursa (job #2511763) | Cod sursa (job #2699314) | Cod sursa (job #2760865)
#include <fstream>
#define N 501
using namespace std;
ifstream cin ("piese.in");
ofstream cout("piese.out");
int a[N][N],nrpiesa=1;
int acoperire (int n, int m, int x, int y)
{
if(n == 0 || m == 0)
return 0;
int l = 1;
while(l * 2 <= m && l * 2 <= n)
l = l * 2;
for(int i = x; i < x + l; i++)
for(int j = y; j < y + l; j++)
a[i][j] = nrpiesa;
nrpiesa++;
if(n == l && m == l)
return 1;
return 1 + acoperire(n - l, l, x + l, y) + acoperire(n, m - l, x, y + l);
}
int main()
{
int m, n;
cin >> n >> m;
cout << acoperire(n, m, 1, 1) << "\n";
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
cout << a[i][j] << " ";
cout << "\n";
}
return 0;
}