Cod sursa(job #2926150)

Utilizator euyoTukanul euyo Data 17 octombrie 2022 09:28:57
Problema Oras Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <bits/stdc++.h>

using namespace std;

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

const int DIM = 205;

int T[DIM][DIM];

void gen3() {
  T[1][2] = T[2][3] = T[3][1] = 1;
}
void gen6() {
  // 0 1 1 1 0 0 
  // 0 0 1 0 1 0 
  // 0 0 0 1 1 1 
  // 0 1 0 0 1 1 
  // 1 0 0 0 0 1 
  // 1 1 0 0 0 0
  
  T[1][2] = T[1][3] = T[1][4] = 1;
  T[2][3] = T[2][5] = 1;
  T[3][4] = T[3][5] = T[3][6] = 1;
  T[4][2] = T[4][5] = T[4][6] = 1;
  T[5][1] = T[5][6] = 1;
  T[6][1] = T[6][2] = 1;

  /*
  for ( int m = 0; m < (1 << 15); ++m ) {
	int k = 0;
	for ( int i = 1; i <= 6; ++i ) {
	  for ( int j = 1; j < i; ++j ) {
		T[i][j] = (m >> k) & 1;
		++k;
		T[j][i] = T[i][j] ^ 1;
	  }
	}
	bool ok = true;
	for ( int i = 1; i <= 6; ++i ) {
	  for ( int j = 1; j <= 6; ++j ) {
	    if ( i == j ) continue;
		if ( !T[i][j] ) {
		  bool q = false;
		  for ( int k = 1; k <= 6; ++k ) {
            if ( T[i][k] && T[k][j] ) {
			  q = true;
			  break;
			}
		  }
		  ok &= q;
		}
	  }
	}
    if ( ok ) {
	  break;
	}
  }
  for ( int i = 1; i <= 6; ++i ) {
	for ( int j = 1; j <= 6; ++j ) {
	  cout << T[i][j] << " ";
	}
	cout << "\n";
  }*/
}

int main() {
  int n;

  fin >> n;
  if ( n == 4 ) {
	fout << "-1";
	return 0;
  } 
  if ( n & 1 ) {
    gen3();
    for ( int q = 4; q < n; q += 2 ) {
	  T[q][q + 1] = 1;
	  for ( int i = 1; i < q; ++i ) {
		T[i][q] = T[q + 1][i] = 1;
	  }
	}
  } else {
	gen6();
	for ( int q = 7; q < n; q += 2 ) {
	  T[q][q + 1] = 1;
	  for ( int i = 1; i < q; ++i ) {
		T[i][q] = T[q + 1][i] = 1;
	  }
	}
  }
  for ( int i = 1; i <= n; ++i ) {
	for ( int j = 1; j <= n; ++j ) {
	  fout << T[i][j];
	}
	fout << "\n";
  }
  fin.close();
  fout.close();
  return 0;
}