Pagini recente » Cod sursa (job #645649) | Cod sursa (job #2660810) | Cod sursa (job #239378) | Cod sursa (job #2984198) | Cod sursa (job #2541402)
#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;
}