Cod sursa(job #2760865)

Utilizator somethingforeveryoneMatei Gabriel somethingforeveryone Data 29 iunie 2021 12:37:05
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define N 501
using namespace std;
ifstream cin ("piese.in");
ofstream cout("piese.out");
int a[N][N],nrpiesa=1;

int acoperire (int n, int m, int x, int y)
{
    if(n == 0 || m == 0)
        return 0;

    int l = 1;

    while(l * 2 <= m && l * 2 <= n)
        l = l * 2;

    for(int i = x; i < x + l; i++)
        for(int j = y; j < y + l; j++)
            a[i][j] = nrpiesa;
    nrpiesa++;

    if(n == l && m == l)
        return 1;

    return 1 + acoperire(n - l, l, x + l, y) + acoperire(n, m - l, x, y + l);
}

int main()
{
    int m, n;

    cin >> n >> m;
    cout << acoperire(n, m, 1, 1) << "\n";
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= m; j++)
            cout << a[i][j] << " ";
        cout << "\n";
    }
    return 0;
}