Pagini recente » Cod sursa (job #789364) | Cod sursa (job #1792836) | Cod sursa (job #2072846) | Cod sursa (job #2363560) | Cod sursa (job #2906670)
#include <fstream>
using namespace std;
const int MAX_N = 500;
int a[MAX_N + 1][MAX_N + 1];
int n, m;
bool ok(int l1, int c1, int l2, int c2) {
return l1 >= 1 && l1 <= n && c1 >= 1 && c1 <= m && l2 >= 1 && l2 <= n && c2 >= 1 && c2 <= m;
}
int main() {
ifstream fin("piese.in");
ofstream fout("piese.out");
fin >> n >> m;
int cnt = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (a[i][j] == 0) {
int len = 9;
while (!ok(i, j, i + (1 << len) - 1, j + (1 << len) - 1)) {
len--;
}
cnt++;
for (int lin = i; lin <= i + (1 << len) - 1; lin++) {
for (int col = j; col <= j + (1 << len) - 1; col++) {
a[lin][col] = cnt;
}
}
}
}
}
fout << cnt << "\n";
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
fout << a[i][j] << " ";
}
fout << "\n";
}
return 0;
}