Pagini recente » Cod sursa (job #2113836) | Cod sursa (job #858854) | Cod sursa (job #128237) | Cod sursa (job #29364) | Cod sursa (job #502165)
Cod sursa(job #502165)
#include <stdio.h>
FILE *f,*g;
int n,m,nr,p;
int a[1001][1001],x[1001];
void tipar(int k)
{int i;
for(i=1;i<=k;i++)
fprintf(g,"%d ",x[i]);
}
int cont(int k)
{int y=1;
if(k>1 && a[x[k-1]][x[k]]==1)
y=0;
int i;
for(i=1;i<k;i++)
if(x[i]==x[k])
y=0;
return y;
}
void back()
{int k;
k=1;
x[k]=0;
while(k>0)
if(x[k]<n)
{x[k]=x[k]+1;
if(cont(k)==1)
if(k==n)
{nr++;
if(nr==p)
{tipar(k);
break;
}
}
else
{k++;
x[k]=0;
}
}
else k--;
}
int main()
{int i,j;
f=fopen("dusman.in","r");
g=fopen("dusman.out","w");
fscanf(f,"%d %d %d",&n,&p,&m);
int x,y;
for(i=1;i<=m;i++)
{fscanf(f,"%d %d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
fclose(f);
nr=0;
back();
return 0;
}