Cod sursa(job #3143821)

Utilizator SSKMFSS KMF SSKMF Data 2 august 2023 13:09:32
Problema Piese Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 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;

    for (int linie = 1 , valoare = 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] = valoare;
                matrice[linie][coloana + lungime] = -valoare;
                matrice[linie + lungime][coloana] = -valoare;
                matrice[linie + lungime][coloana + lungime] = valoare;
                valoare++;
            }

            cout << matrice[linie][coloana] << ' ';
        }

        cout << '\n';
    }

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