Pagini recente » Cod sursa (job #2127855) | Cod sursa (job #253220) | Cod sursa (job #1953104) | Cod sursa (job #818026) | Cod sursa (job #551793)
Cod sursa(job #551793)
#include<cstdio>
using namespace std;
int i,j,n,k,m,d[1001][1001],v[1001],r,a,b,viz[1001],t;
void afisare(int r)
{
for(int i=1;i<=r;i++) printf("%d ",v[i]);
printf("\n");
}
int valid(int r)
{
if(d[v[r]][v[r-1]]==1 || viz[v[r]]==1 ) return 0;
return 1;
}
int solutie(int r)
{
if(r==n) return 1;
return 0;
}
void back()
{
r=1;
v[r]=0;
while(r>=1)
if(v[r]<n)
{
v[r]++;
if(valid(r))
{
viz[v[r]]=1;
if(solutie(r)) {t++;
if(t==k) {afisare(r);return ;}
viz[v[r]] = 0;
}
else v[++r]=0;
}
}
else
{r--;
viz[v[r]] = 0;
}
}
int main()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d%d%d",&n,&k,&m);
for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); d[a][b]=1; d[b][a]=1; }
back();
return 0;
}