Pagini recente » Cod sursa (job #431154) | Cod sursa (job #1376476) | Clasament night_time_contest1 | Cod sursa (job #2124372) | Cod sursa (job #1752425)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("piese.in");
ofstream out("piese.out");
int v[505][505];
int n, m;
int r = 1;
int put(int x, int y){
int p = 1;
while(p * 2 <= min(x, y))
p = p * 2;
return p;
}
void f(int l, int c, int a, int b){
int p = put(a - l + 1, b - c + 1);
for(int i = l; i <= l + p - 1; i++)
for(int j = c; j <= c + p - 1; j++)
v[i][j] = r;
if(l > a || c > b)
return ;
r++;
f(l, c + p, l + p - 1, m);
f(l + p, c, a, b);
}
int main()
{
in >> n >> m;
int a = n, b = m;
f(1, 1, n, m);
out << r - 1 << "\n";
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++)
out << v[i][j] << " ";
out << '\n';
}
return 0;
}