Cod sursa(job #3229759)

Utilizator BuzdiBuzdugan Rares Andrei Buzdi Data 17 mai 2024 13:38:21
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <map>
#include <cmath>
#define ll long long

using namespace std;

ifstream cin("piese.in");
ofstream cout("piese.out");

const int NMAX = 500;

int n, m, blocks;
int a[NMAX + 1][NMAX + 1];

int main()
{
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            if(a[i][j] == 0)
            {
                blocks++;
                int p2 = 1;
                while(i + (p2 * 2) - 1 <= n && j + (p2 * 2) - 1 <= m)
                    p2 *= 2;
                for(int x = i; x <= i + p2 - 1; x++)
                    for(int y = j; y <= j + p2 - 1; y++)
                        a[x][y] = blocks;
            }

    cout << blocks << '\n';
    for(int i = 1; i <= n; i++, cout << '\n')
        for(int j = 1; j <= m; j++)
            cout << a[i][j] << ' ';

    return 0;
}