Cod sursa(job #1585670)

Utilizator vladrochianVlad Rochian vladrochian Data 31 ianuarie 2016 12:34:07
Problema Oras Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstring>
#include <fstream>

using namespace std;

const int N_MAX = 200;

ifstream fin("oras.in");
ofstream fout("oras.out");

int N;
char a[N_MAX + 5][N_MAX + 5];

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

int main() {
   fin >> N;
   if (N == 4) {
      fout << "-1\n";
      return 0;
   }

   for (int i = 1; i <= N; ++i)
      memset(a[i] + 1, '0', N);
   Fill(N);

   for (int i = 1; i <= N; ++i)
      fout << a[i] + 1 << "\n";
   return 0;
}