Cod sursa(job #293538)
Utilizator | Data | 1 aprilie 2009 21:39:57 | |
---|---|---|---|
Problema | Dusman | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.67 kb |
#include<stdio.h>
int n,m,k,a[1001][1001],x[1001],p[1001];
void back(int pas)
{ int j;
if(k<0) return;
if(pas>n)
{ k--;
if(k==0) for(int i=1;i<=n;i++)
printf("%d ",x[i]);
return;
}
for(j=1;j<=n;j++)
if(!p[j]&&!a[x[pas-1]][j])
{ p[j]=1;
x[pas]=j;
back(pas+1);
p[j]=0;
}
}
int main()
{ int i,x,y;
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",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
back(1);
return 0;
}