Pagini recente » Cod sursa (job #385548) | Cod sursa (job #1735870) | Cod sursa (job #1990097) | Cod sursa (job #1087477) | Cod sursa (job #2474216)
#include <iostream>
#include <fstream>
#include <vector>
#include <stdlib.h>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int sol,n,m,k,v[1005],nr;
bool a[1005][1005],use[1005];
vector <int> urm[1005];
void afisare(int k)
{
for(int i=1;i<=k;i++)
g<<v[i]<<" ";
}
void bkt(int k)
{
if(k==n+1)
{
sol++;
if(sol==nr)
{
afisare(n);
exit(EXIT_SUCCESS);
}
}
else
{
for(int i=0;i<(int)urm[v[k-1]].size();i++)
{
if(use[urm[v[k-1]][i]]==0)
{
v[k]=urm[v[k-1]][i];
use[urm[v[k-1]][i]]=1;
bkt(k+1);
v[k]=0;
use[urm[v[k-1]][i]]=0;
}
}
}
}
int main()
{
int x,y,i,j;
f>>n>>nr>>m;
while(m--)
{
f>>x>>y;
a[x][y]=a[y][x]=1;
}
for(i=0;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][j]==0)
urm[i].push_back(j);
}
}
bkt(1);
return 0;
}