Pagini recente » Cod sursa (job #429924) | Cod sursa (job #1968700) | Cod sursa (job #2344836) | Cod sursa (job #2589671) | Cod sursa (job #133819)
Cod sursa(job #133819)
#include<stdio.h>
FILE*f=fopen("oras.in","r");
FILE*g=fopen("oras.out","w");
char a[201][201],x='1';
int n;
void caz()
{
a[1][6]=x;
a[1][2]=x; a[1][4]=x;
a[2][4]=a[2][3]=a[2][5]=x;
a[3][4]=a[3][6]=a[3][1]=x;
a[4][5]=a[4][6]=x;
a[5][1]=a[5][3]=x;
a[6][5]=a[6][2]=x;
}
void gaseste(int n)
{
int i;
//am fixate nodurile n-2, si adaug nodurile n-1,n.
a[n-1][n]='1'; //am nod de la n-1, la n
for(i=1;i<=n-2;++i)
{
a[i][n-1]='1';
a[n][i]='1'; //drum: n-1 -> n -> i
}
}
int main()
{
int i,j;
fscanf(f,"%d",&n);
for(i=1;i<=n;++i) for(j=1;j<=n;++j) a[i][j]='0';
a[1][2]='1'; a[2][3]='1'; a[3][1]='1';
if(n==4) fprintf(g,"-1\n");
else
{
//am fixat graful cu 3 noduri:
if(n%2==0)
{
caz();
for(i=8;i<=n;i+=2) gaseste(i);
}
else
for(i=5;i<=n;i+=2) gaseste(i);
}
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
fprintf(g,"%c",a[i][j]);
fprintf(g,"\n");
}
return 0;
}