Pagini recente » Cod sursa (job #324803) | Cod sursa (job #116577) | Cod sursa (job #1414013) | Cod sursa (job #1400807) | Cod sursa (job #369217)
Cod sursa(job #369217)
#include<stdio.h>
#define dim 1005
#include<stdlib.h>
int n,v[dim],viz[dim],mat[dim][dim],m,k,a,b,kk,cont;
FILE *f=fopen("dusman.in","r"), *g=fopen("dusman.out","w");
int solutie()
{int i,x,y;
for(i=2;i<n;i++)
{x=v[i-1]; y=v[i+1];
if(mat[ v[i] ][x]==1||mat[ v[i] ][y]==1)
return 0;
}
cont++; return 1;
}
void afisare()
{int i;
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fprintf(g,"\n");
//cout<<v[i]<<" ";
// cout<<"\n";
fclose(f);
fclose(g);
exit(0);
}
int bkt(int k)
{int i;
if(k>n)
{if(solutie())
if(kk==cont) afisare();}
else
{for(i=1;i<=n;i++)
if(viz[i]==0)
{v[k]=i;
viz[i]=1;
bkt(k+1);
viz[i]=0;
}
}
return 0;
}
int main()
{int i;
fscanf(f,"%d%d%d",&n,&kk,&m);
for(i=1;i<=m;i++)
{fscanf(f,"%d%d",&a,&b);
mat[a][b]=1;
mat[b][a]=1;
}
bkt(1);
fclose(f);
fclose(g);
return 0;
}