Cod sursa(job #3143823)

Utilizator SSKMFSS KMF SSKMF Data 2 august 2023 13:12:38
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
using namespace std;

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

int matrice[502][502];

int main ()
{
    int linii , coloane;
    cin >> linii >> coloane;

    int piese = 0;
    for (int linie = 1 ; linie <= linii ; linie++) 
        for (int coloana = 1 ; coloana <= coloane ; coloana++) 
            if (!(matrice[linie][coloana] += matrice[linie - 1][coloana] + matrice[linie][coloana - 1] - matrice[linie - 1][coloana - 1]))
            {
                int lungime = 1;
                while (linie + (lungime << 1) - 1 <= linii && coloana + (lungime << 1) - 1 <= coloane)
                    lungime <<= 1;

                matrice[linie][coloana] += ++piese;
                matrice[linie][coloana + lungime] -= piese;
                matrice[linie + lungime][coloana] -= piese;
                matrice[linie + lungime][coloana + lungime] += piese;
            }

    cout << piese << '\n';
    for (int linie = 1 ; linie <= linii ; linie++) {
        for (int coloana = 1 ; coloana <= coloane ; coloana++)
            cout << matrice[linie][coloana] << ' ';
        cout << '\n';
    }

    cout.close(); cin.close();
    return 0;
}