Cod sursa(job #1966856)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 15 aprilie 2017 16:53:43
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;

ifstream f("piese.in");
ofstream g("piese.out");

int n, m, i, doi[30], a[502][502], maxim;

int main()
{
    f>>n>>m;

    doi[0] = 1;
    for(i = 1; i <= 10; ++ i)
        doi[i] = doi[i-1] * 2;

    int j, ii ,jj, latime, nr = 0;

    for( i = 1; i <= n; ++ i)
    {
        for( j = 1; j <= m; ++ j)
        {
            if(a[i][j] == 0)
            {
                ++nr;

                latime = min(n - i, m - j) + 1;

                for(ii = 0; ; ++ ii)
                {
                    if( doi[ii] > latime )
                        break;
                }

                latime = doi[ii - 1];

                for(ii = i; ii <= i + latime - 1; ++ ii)
                {
                    for(jj = j; jj <= j + latime - 1; ++ jj)
                        a[ii][jj] = nr;
                }

            }
        }
    }

    g<<nr<<'\n';

    for(i = 1; i <= n; ++ i)
    {
        for(int j = 1; j <= m; ++ j)
            g<<a[i][j]<<" ";
        g<<'\n';
    }

    return 0;
}