Cod sursa(job #359902)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 28 octombrie 2009 19:18:50
Problema Oras Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <stdio.h>
#define Nmax 205

int a[Nmax][Nmax];
int n;

void write(){
	int i,j;
   for(i=1;i<=n;++i){
   	for(j=1;j<=n;++j) printf("%d ",a[i][j]);
      printf("\n");
   }
}

void solve(){
	int i,st;
	if( n == 4 ){
   	 printf("%d\n",-1);
       return;
   }
   if( n & 1 ){
      a[1][2]=1; a[2][3]=1; a[3][1]=1;
      for(st=3; st<n; st+=2){
      	// adaug nod st+1 si nod st+2
         a[st+1][st+2]=1;
         for(i=1;i<=st;++i)
           a[i][st+1]=1, a[st+2][i]=1;
      }
   }else{
   	a[1][2]=a[1][4]=1;
      a[2][3]=a[2][6]=1;
      a[3][1]=a[3][4]=a[3][5]=1;
      a[4][2]=a[4][5]=1;
      a[5][1]=a[5][6]=1;
      a[6][1]=a[6][3]=a[6][4]=1;
      for(st=6; st<n; st+=2){
      	// adaug nod st+1 si nod st+2
         a[st+1][st+2]=1;
         for(i=1;i<=st;++i)
           a[i][st+1]=1, a[st+2][i]=1;
      }
   }
   write();
}

int main(){
	freopen("oras.in","r",stdin);
   freopen("oras.out","w",stdout);
   scanf("%d",&n);

   solve();

   fclose(stdin); fclose(stdout);
   return 0;
}