Pagini recente » Cod sursa (job #259692) | Cod sursa (job #2778105) | Cod sursa (job #1949450) | Cod sursa (job #1107265) | Cod sursa (job #2135000)
#include <cstdio>
#include <vector>
using namespace std;
int a[1001][1001],f[1001],n,k,st,sol[1001];
FILE *fin=fopen ("dusman.in","r");
FILE *fout=fopen ("dusman.out","w");
vector <int> v[1001];
void back (int pas){
int i,x;
if (st==k)
return;
if (pas==n+1){
st++;
if (st==k)
for (i=1;i<=n;i++)
fprintf (fout,"%d ",sol[i]);
}
for (i=0;i<v[sol[pas-1]].size();i++){
x=v[sol[pas-1]][i];
if (!f[x]){
f[x]=1;
sol[pas]=x;
back(pas+1);
f[x]=0;
}
}
}
int main()
{
int m,i,j,x,y;
fscanf (fin,"%d%d%d",&n,&k,&m);
for (i=1;i<=m;i++){
fscanf (fin,"%d%d",&x,&y);
a[x][y]=a[y][x]=1;
}
for (i=0;i<=n;i++){
for (j=1;j<=n;j++){
if (i!=j && a[i][j]==0)
v[i].push_back(j);
}
}
back(1);
return 0;
}