Cod sursa(job #2030850)

Utilizator mirceaisherebina mircea mirceaishere Data 2 octombrie 2017 12:52:31
Problema Piese Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
using namespace std;
ifstream fin ("piese.in");
ofstream fout("piese.out");
int n[501], m[501], x[501], y[501], u, p, ic, jc, s, k, i, j, v[501][501], a, b;
int main(){
    fin>>n[1]>>m[1];
    a=n[1];
    b=m[1];
    x[1]=0;
    y[1]=0;
    u=1;
    while(p<u){
        p++;
        ic=x[p];
        jc=y[p];
        s=min(m[p], n[p]);
        k=1;
        while(s>=k*2){
            k*=2;
        }
        for(i=ic; i<ic+k; i++){
            for(j=jc; j<jc+k; j++){
                v[i][j]=p;
            }
        }
        if(k<n[p]){
            u++;
            n[u]=n[p]-k;
            m[u]=k;
            x[u]=ic+k;
            y[u]=jc;
        }
        if(k<m[p]){
            u++;
            n[u]=k;
            m[u]=m[p]-k;
            x[u]=ic;
            y[u]=jc+k;
        }
        if(k<n[p] && k<m[p]){
            u++;
            n[u]=n[p]-k;
            m[u]=m[p]-k;
            x[u]=ic+k;
            y[u]=jc+k;
        }
    }
    fout<<p<<"\n";
    for(i=0; i<a; i++){
        for(j=0; j<b; j++){
            fout<<v[i][j]<<" ";
        }
        fout<<"\n";
    }
}