Cod sursa(job #517771)

Utilizator darrenRares Buhai darren Data 29 decembrie 2010 19:41:07
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

int M, N;
int result[502][502];
int nop;

int main()
{
    ifstream fin("piese.in");
    ofstream fout("piese.out");

    fin >> M >> N;
    for (int i = 1; i <= M; ++i)
        for (int j = 1; j <= N; ++j)
            if (result[i][j] == 0)
            {
                ++nop;

                int can = 1;
                while (i + (can << 1) - 1 <= M && j + (can << 1) - 1 <= N)
                    can <<= 1;

                for (int i2 = i; i2 <= i + can - 1; ++i2)
                    for (int j2 = j; j2 <= j + can - 1; ++j2)
                        result[i2][j2] = nop;
            }

    fout << nop;
    for (int i = 1; i <= M; ++i)
    {
        fout << '\n';
        for (int j = 1; j <= N; ++j)
            fout << result[i][j] << ' ';
    }

    fin.close();
    fout.close();
}