Cod sursa(job #1835973)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 27 decembrie 2016 16:45:38
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <bits/stdc++.h>
using namespace std;

ifstream f("oras.in");
ofstream g("oras.out");
const int nmax=205;
int a[nmax][nmax];

int main()
{

    int n,i,j;
    f>>n;

    if (n==3)
    {
        a[1][2]=1;
        a[2][3]=1;
        a[3][1]=1;
        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
             g<<a[i][j];
            g<<'\n';
        }
        return 0;
    }

    if (n==4)
    {
        g<<"-1";
        return 0;
    }

    if (n%2==1)
    {
        for (i=1;i<=n;i++)
         for (j=1;j<=n/2;j++)
          {
              if (i+j<=n)
               a[i][i+j]=1;
              else
               a[i][i+j-n]=1;
          }

        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
             g<<a[i][j];
            g<<'\n';
        }
        return 0;
    }

    if (n%2==0)
    {
        n--;

        for (i=1;i<=n;i++)
         for (j=1;j<=n/2;j++)
          {
              if (i+j<=n)
               a[i][i+j]=1;
              else
               a[i][i+j-n]=1;
          }

        a[n+1][1]=1;
        a[n+1][n/2+1]=1;

        for (i=1;i<=n;i++)
         if (i!=1 && i!=n/2+1)
          a[i][n+1]=1;

        n++;

        for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
             g<<a[i][j];
            g<<'\n';
        }
        return 0;
    }

    return 0;
}