Cod sursa(job #847103)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 3 ianuarie 2013 12:31:46
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include<fstream>
#include<bitset>
using namespace std;
bitset <213> a[213];
int n;
int main()
{
    fstream f,g;
    f.open("oras.in",ios::in);
    g.open("oras.out",ios::out);
    f>>n;
    int i,j;
    if (n==4) { g<<-1; return 0;}
    if (n%2==0)
    {
        // constructie pt n==6
        a[1][2]=a[1][5]=a[1][6]=a[2][3]=a[2][5]=a[3][1]=a[3][4]=a[3][6]=a[4][1]=a[4][2]=a[5][3]=a[5][4]=a[6][2]=a[6][4]=a[6][5]=1;
        for (i=8;i<=n;i=i+2)
        {
            for (j=1;j<=i-2;j++)
                a[j][i-1]=1;
            a[i-1][i]=1;
            for (j=1;j<=i-2;j++)
                a[i][j]=1;
        }
        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
                g<<a[i][j];
            g<<'\n';
        }
        return 0;
    }
    else
    {
        // constructie pt n==3
        a[1][2]=a[2][3]=a[3][1]=1;
       for (i=5;i<=n;i=i+2)
        {
            for (j=1;j<=i-2;j++)
                a[j][i-1]=1;
            a[i-1][i]=1;
            for (j=1;j<=i-2;j++)
                a[i][j]=1;
        }
        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
                g<<a[i][j];
            g<<'\n';
        }
        return 0;
    }

}