Cod sursa(job #1231679)

Utilizator xtreme77Patrick Sava xtreme77 Data 21 septembrie 2014 12:52:07
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>

const char IN [ ] = "oras.in" ;
const char OUT [ ] = "oras.out" ;
const int MAX = 214 ;

using namespace std ;

ifstream fin ( IN ) ;
ofstream fout ( OUT ) ;

char A [ MAX ] [ MAX ] ;

void back ( int k )
{
    if ( k == 3 )
    {
        A [ 1 ] [ 2 ] = '1' ;
        A [ 2 ] [ 3 ] = '1' ;
        A [ 3 ] [ 1 ] = '1' ;
        return ;
    }
    if ( k == 6 )
    {
        A [ 1 ] [ 2 ] = A [ 1 ] [ 4 ] = A [ 1 ] [ 6 ] = '1';
        A [ 2 ] [ 3 ] = A [ 2 ] [ 5 ] = A [ 2 ] [ 6 ] = '1';
        A [ 3 ] [ 1 ] = A [ 3 ] [ 5 ] = A [ 4 ] [ 2 ] = '1';
        A [ 4 ] [ 3 ] = A [ 4 ] [ 5 ] = A [ 5 ] [ 1 ] = '1';
        A [ 5 ] [ 6 ] = A [ 6 ] [ 3 ] = A [ 6  ][ 4 ] = '1';
        return ;
    }
    A [ k - 1 ] [ k ] = '1' ;
    for ( int i = 1 ; i <= k - 2 ; ++ i )
        A [ i ] [ k - 1 ] = A [ k ] [ i ] = '1' ;
    back ( k - 2 ) ;
}

int main ( )
{
    int n ;
    fin >> n ;
    if ( n == 4 )
    {
        fout << -1 ;
        return 0 ;
    }
    for ( int i = 1 ; i <= n ; ++ i )
        for ( int j = 1 ; j <= n ; ++ j )
            A [ i ] [ j ] = '0' ;
    back ( n ) ;
    for ( int i = 1 ; i <= n ; ++ i , fout << '\n' )
        for ( int j = 1 ; j <= n ; ++ j )
            fout << A [ i ] [ j ] ;
    return 0 ;
}