Pagini recente » Cod sursa (job #2459568) | Cod sursa (job #1592664) | Cod sursa (job #2516097) | Cod sursa (job #3039058) | Cod sursa (job #551792)
Cod sursa(job #551792)
#include<cstdio>
using namespace std;
int i,j,n,k,m,r,a,b,t;
int d[1001][1001];
int v[1001];
int viz[1001];
void afisare(int r)
{
for(int i=1;i<=r;i++) printf(g,"%d ",v[i]);
printf(g,"\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()
{
FILE * f = ("dusman.in","r");
FILE * g = ("dusman.out","w");
scanf("%d%d%d",&n,&k,&m);
for(i=1;i<=m;i++) { scanf(f,"%d%d",&a,&b); d[a][b]=1; d[b][a]=1; }
back();
fclose(f);
fclose(g);
return 0;
}