Cod sursa(job #1971322)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 20 aprilie 2017 11:31:25
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
using namespace std;
ifstream in("piese.in");
ofstream out("piese.out");
int mat[505][505],s,i,j,a,b,n,m,k;
int main(){
    in >> n >> m;
    for( k = 512; k >= 1; k/=2){
        for( i = 1; i <= n; i ++ ){
            for( j = 1; j <= m; j ++ ){
                if( n-i+1 >= k && m-j+1 >= k && mat[i][j] == 0 ){
                    s++;
                    for( a = i; a <= i + k-1; a ++ ){
                        for( b = j; b <= j + k-1; b ++ ){
                            mat[a][b] = s;
                        }
                    }
                }
            }
        }
    }
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            if( mat[i][j] == 0 ){
                s++;
                mat[i][j] = s;
            }
        }
    }
    out << s<<"\n";
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            out<<mat[i][j]<<" ";
        }
        out<<"\n";
    }

    return 0;
}