Pagini recente » Cod sursa (job #102005) | Cod sursa (job #2040057) | Cod sursa (job #1932624) | Cod sursa (job #1846262) | Cod sursa (job #868428)
Cod sursa(job #868428)
#include<fstream>
#define dim 203
using namespace std;
ifstream f("oras.in");
ofstream g("oras.out");
int n,i,j;
bool a[dim][dim];
void solve ( int n ) {
if(n==3){
a[1][2]=a[2][3]=a[3][1]=1;
return ;
}
if(n==6){
a[1][2]=a[1][3]=a[1][4]=1;
a[2][3]=a[2][4]=a[2][5]=1;
a[3][4]=a[3][6]=1;
a[4][5]=a[4][6]=1;
a[5][1]=a[5][3]=a[5][6]=1;
a[6][1]=a[6][2]=1;
return ;
}
if(n==4)
return ;
for(int i=1;i<=n-2;++i) {
a[i][n-1]=1;
a[n][i]=1;
}
a[n-1][n]=1;
solve(n-2);
}
int main () {
//presupunem ca avem pt N-2 drumurile realizare,raman de conectat nodurile n-1 si n astfel:
//construim arc de la n-1 la n
// construim arce de la nodurile(1,2...n-2) catre n-1, iar de la n catre (1,2...n-2);
//preprocesam valorile pt n=3 si n=6,iar daca n=4 nu avem solutie;
f>>n;
solve(n);
if(n==4){
g<<-1;
return 0;
}
for(i=1;i<=n;++i){
for(j=1;j<=n;++j)
g<<a[i][j];
g<<"\n";
}
return 0;
}