Pagini recente » Cod sursa (job #1211249) | Cod sursa (job #1717944) | Cod sursa (job #3038470) | Cod sursa (job #2752562) | Cod sursa (job #1787192)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream in ("oras.in");
ofstream out ("oras.out");
const int NMax = 205;
int Semaforisoara[NMax][NMax],n,s;
void PreImpar()
{
Semaforisoara[1][2]=Semaforisoara[2][3]=Semaforisoara[3][1]=1;
}
void PrePar()
{
Semaforisoara[1][2]=Semaforisoara[1][4]=Semaforisoara[2][5]=1;
Semaforisoara[5][4]=Semaforisoara[6][1]=Semaforisoara[6][5]=1;
Semaforisoara[2][6]=Semaforisoara[3][1]=Semaforisoara[3][2]=1;
Semaforisoara[4][6]=Semaforisoara[5][1]=Semaforisoara[5][3]=1;
Semaforisoara[3][6]=Semaforisoara[4][2]=Semaforisoara[4][3]=1;
}
void Read()
{
in>>n;
}
void Solve()
{
//CAZ IMPOSIBIL
if (n==4) {
out<<"-1\n";
exit(0);
}
//PREGATESC PUNCTUL DE START
if (n%2==0)
PrePar(),s=7;
else if (n%2==1)
PreImpar(),s=4;
//I SOLVE IT:
for (int i=s;i<n;i+=2)
{
Semaforisoara[i][i+1]=1;
for (int j=1;j<=i-1;j++)
{
Semaforisoara[i+1][j]=1;
Semaforisoara[j][i]=1;
}
}
}
void Print()
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
out<<Semaforisoara[i][j];
}
out<<"\n";
}
}
int main()
{
Read();
Solve();
Print();
return 0;
}