Pagini recente » Profil aldo555 | Cod sursa (job #2045136) | Cod sursa (job #2070164) | Rating Buruiana Catalin (Loopiezlol) | Cod sursa (job #1743985)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("piese.in");
ofstream cout("piese.out");
int lg[510];
int a[510][510];
void Fill(int nr, int x, int y, int pow) {
for (int i = x; i <= x + pow - 1; i++)
for (int j = y; j <= y + pow - 1; j++)
a[i][j] = nr;
}
int main() {
int n, m, nr = 0;
cin >> n >> m;
for (int i = 2; i <= max(n, m); i++)
lg[i] = lg[i / 2] + 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (!a[i][j]) {
nr++;
Fill(nr, i, j, 1 << lg[min(n - i + 1, m - j + 1)]);
}
cout << nr << "\n";
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
cout << a[i][j] << " ";
cout << "\n";
}
return 0;
}