Pagini recente » Cod sursa (job #3003701) | Borderou de evaluare (job #2011837) | Cod sursa (job #150516) | Cod sursa (job #494685) | Cod sursa (job #3143822)
#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;
}