Pagini recente » Cod sursa (job #3153315) | Cod sursa (job #2039179) | Cod sursa (job #2865026) | Cod sursa (job #1907911) | Cod sursa (job #473355)
Cod sursa(job #473355)
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define dim 1010
int n,k,K,T,x,y,v[dim],dusman[dim][dim],as,ev,i;
FILE *f=fopen("dusman.in","r"), *g=fopen("dusman.out","w");
void init()
{
v[k]=0;
}
int succesor()
{
v[k]=v[k]+1;
if(v[k]>n)
return 0;
else return 1;
}
int valid()
{
int i;
for(i=1;i<k;i++)
if(v[i]==v[k])
return 0;
if( dusman[ v[ k ] ][ v[ k-1 ] ]!=1 )
return 1;
else return 0;
}
int solutie()
{
if(n==k)
return 1;
return 0;
}
void afisare()
{
K--;
if(K==0)
{
int i;
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fprintf(g,"\n");
fclose(g);
exit(0);
}
}
void bt()
{
k=1;
init();
while(k>0)
{
as=1; ev=0;
while(as&&!ev)
{
as=succesor();
if(as)
ev=valid();
}
if(as)
{
if(solutie())
afisare();
else {k++; init();}
}
else k--;
}
}
int main()
{
fscanf(f,"%d %d %d ",&n,&K,&T);
for(i=1;i<=T;i++)
{fscanf(f,"%d %d",&x,&y);
dusman[x][y]=1;
dusman[y][x]=1;
}
fclose(f);
bt();
return 0;
}