Cod sursa(job #1083964)

Utilizator sleepaholicNeculaescu Theodor sleepaholic Data 16 ianuarie 2014 16:12:43
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
 
using namespace std;
 
ifstream fin("piese.in");
ofstream fout("piese.out");
 
const int nmax= 500;
 
int sol[nmax+1][nmax+1];
 
int main(  ) {
    int n, m;
    fin>>n>>m;
 
    int k= 1;
    for ( int i= 1; i<=n; ++i ) {
        for ( int j= 1; j<=m; ++j ) {
            if ( sol[i][j]==0 ) {
                int x;
                for ( x= 1; i-1+2*x<=n && j-1+2*x<=m; x*= 2 );
                 
                for ( int i2= i; i2<i+x; ++i2 ) {
                    for ( int j2= j; j2<j+x; ++j2 ) {
                        sol[i2][j2]= k;
                    }
                }
                ++k;
            }
        }
    }
    fout<<k-1<<"\n";
    for ( int i= 1; i<=n; ++i ) {
        for ( int j= 1; j<=m; ++j ) {
            fout<<sol[i][j]<<" ";
        }
        fout<<"\n";
    }
 
    return 0;
}