Cod sursa(job #2906670)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 26 mai 2022 23:17:50
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#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;
}