Cod sursa(job #1971321)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 20 aprilie 2017 11:26:02
Problema Piese Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.61 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;
int main(){
    in >> n >> m;
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            if( n-i+1 >= 8 && m-j+1 >= 8 && mat[i][j] == 0 ){
                s++;
                for( a = i; a <= i + 7; a ++ ){
                    for( b = j; b <= j + 7; b ++ ){
                        mat[a][b] = s;
                    }
                }
            }
        }
    }
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            if( n-i+1 >= 4 && m-j+1 >= 4 && mat[i][j] == 0 ){
                s++;
                for( a = i; a <= i + 3; a ++ ){
                    for( b = j; b <= j + 3; b ++ ){
                        mat[a][b] = s;
                    }
                }
            }
        }
    }
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            if( n-i+1 >= 2 && m-j+1 >= 2 && mat[i][j] == 0 ){
                s++;
                for( a = i; a <= i + 1; a ++ ){
                    for( b = j; b <= j + 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;
}