Cod sursa(job #84162)

Utilizator ScrazyRobert Szasz Scrazy Data 13 septembrie 2007 18:16:08
Problema Oras Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.7 kb
#include <stdio.h>
#define NMAX 201

int n, i, j;
int C[NMAX][NMAX], C2[NMAX][NMAX];

int main()
{
    freopen("oras.in","r",stdin);
    freopen("oras.out","w",stdout);

    scanf("%d", &n);

    if (n==3)
    {
	printf("010\n");
	printf("001\n");
	printf("100\n");
	fclose(stdin);
	fclose(stdout);
	return 0;
    }

    if (n==4)
    {
	printf("-1");
	fclose(stdin);
	fclose(stdout);

	return 0;
    }

    C[1][1]=0;C[1][2]=1;C[1][3]=0;C[1][4]=1;C[1][5]=0;
    C[2][1]=0;C[2][2]=0;C[2][3]=1;C[2][4]=1;C[2][5]=0; 
    C[3][1]=1;C[3][2]=0;C[3][3]=0;C[3][4]=1;C[3][5]=0;
    C[4][1]=0;C[4][2]=0;C[4][3]=0;C[4][4]=0;C[4][5]=1;
    C[5][1]=1;C[5][2]=1;C[5][3]=1;C[5][4]=0;C[5][5]=0;

    C2[1][1]=0;C2[1][2]=1;C2[1][3]=1;C2[1][4]=0;C2[1][5]=1;C2[1][6]=0;
    C2[2][1]=0;C2[2][2]=0;C2[2][3]=1;C2[2][4]=1;C2[2][5]=0;C2[2][6]=1;
    C2[3][1]=0;C2[3][2]=0;C2[3][3]=0;C2[3][4]=1;C2[3][5]=1;C2[3][6]=0;
    C2[4][1]=1;C2[4][2]=0;C2[4][3]=0;C2[4][4]=0;C2[4][5]=1;C2[4][6]=0;
    C2[5][2]=1;C2[5][6]=1;
    C2[6][1]=1;C2[6][3]=1;C2[6][4]=1;

    if (n & 1)
    { 
	for (i=7; i<=n; i+=2) 
	{ 
	    for (j=1; j<=i-2; ++j) 
	    { 
		C[j][i-1]=1; 
		C[j][i]=0; 
	    } 
		
	    for (j=1; j<=i-2; ++j) 
		C[i][j]=1; 
		
	    C[i-1][i]=1; 
	}
    }
    else
    {
	for (i=8; i<=n; i+=2)
	{
	    for (j=1; j<=i-2; ++j) 
	    { 
		C2[j][i-1]=1; 
		C2[j][i]=0; 
	    } 
		
	    for (j=1; j<=i-2; ++j) 
		C2[i][j]=1; 
		
	    C2[i-1][i]=1; 
	}
    }

    if (n & 1)
    {
	for (i=1; i<=n; ++i)
	{
	    for (j=1; j<=n; ++j)
		printf("%d", C[i][j]);
	    printf("\n");
	}
    }
    else
    {
	for (i=1; i<=n; ++i)
	{
	    for (j=1; j<=n; ++j)
		printf("%d", C2[i][j]);
	    printf("\n");
	}
    }

    fclose(stdin);
    fclose(stdout);

    return 0;
}