Cod sursa(job #1830425)

Utilizator razvan99hHorhat Razvan razvan99h Data 16 decembrie 2016 18:29:29
Problema Oras Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("oras.in");
ofstream fout("oras.out");
bool g[205][205];
int n, i, j;

int main()
{
    fin>>n;
    if(n==4)
        fout<<"-1";
    else
    {
        //construim graful de baza 1->2 2->3 3->1
        if(n%2==1)
        {   g[1][2]=1; g[2][3]=1; g[3][1]=1;

            for(i=4;i<=n;i=i+2)
            {
                //facem drum de la i la i+1;
                g[i][i+1]=1;
                //acum facem drum de la toate nodurile la i si de la i+1 la toate nodurile
                for(j=1;j<=i-1;j++)
                {
                    g[j][i]=1;
                    g[i+1][j]=1;
                }
            }
        }
        else
        {
            //construim graful de baza pt n=6
            g[1][2]=g[1][4]=g[2][5]=1;
            g[5][4]=g[6][1]=g[6][5]=1;
            g[2][6]=g[3][1]=g[3][2]=1;
            g[4][6]=g[5][1]=g[5][3]=1;
            g[3][6]=g[4][2]=g[4][3]=1;
            for(i=8;i<=n;i=i+2)
            {
                g[i][i+1]=1;
                for(j=1;j<=i-1;j++)
                {
                    g[j][i]=1;
                    g[i+1][j]=1;
                }
            }
        }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
                fout<<g[i][j];
            fout<<'\n';
        }

    }

    return 0;
}