Cod sursa(job #1155268)

Utilizator otto1Palaga Vicentiu-Octavian otto1 Data 26 martie 2014 19:53:52
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#define MAXN 210
using namespace std;
ifstream f("oras.in");
ofstream g("oras.out");

int n;
char ma[MAXN][MAXN];

void solve(int p);

int main()
{
    int i,j;
    f>>n;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            ma[i][j]='0';
        ma[i][n+1]='\n';
        ma[i][n+2]='\0';}
    if(n==4){
        g<<"-1\n";
        return 0;}
    solve(n);
    for(i=1;i<=n;i++)
        g<<ma[i]+1;
    f.close();
    g.close();
    return 0;
}

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