Cod sursa(job #2540492)

Utilizator ardutgamerAndrei Bancila ardutgamer Data 7 februarie 2020 11:28:31
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda irim_eralumis Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

const int NMAX = 505;

int a[NMAX][NMAX];
int m , n;
int cnt = 0;

void bagaPiesa(int x,int y)
{
    cnt++;
    int xi = m-x+1;
    int yi = n-y+1;
    int mi = min(xi,yi);
    int put2 = 1;
    while(put2 < mi)
        put2 <<= 1;
    if(put2 != mi)
        put2 >>= 1;
    for(int i = x; i <= x+put2-1 ; i++)
        for(int j = y ; j <= y+put2-1 ; j++)
            a[i][j] = cnt;
}

int main()
{
    ifstream cin("piese.in");
    ofstream cout("piese.out");
    cin >> m >> n;
    for(int i = 1 ; i <= m ; i++)
    {
        for(int j = 1 ; j <= n ; j++)
        {
            if(a[i][j] == 0)
                bagaPiesa(i,j);
        }
    }
    cout << cnt << "\n";
    for(int i = 1 ; i <= m ; i++)
    {
        for(int j = 1 ; j <= n ; j++)
            cout << a[i][j] << " ";
        cout << "\n";
    }
    return 0;
}