Pagini recente » Cod sursa (job #1779878) | Cod sursa (job #2450349) | Cod sursa (job #929907) | Cod sursa (job #2327681) | Cod sursa (job #2478899)
#include <iostream>
#include <math.h>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int N,M,K;
map <pair<int,int> , bool> hate;
int perm[1010],viz[1010],contor;
void afisare(int n)
{
int i,ok=0;
for(i=1;i<=n;i++)
{
fout<<perm[i]<<" ";
}
fout<<"\n";
}
bool verificare_no_hate(int n)
{
int i;
for(i=1;i<=n-1;i++)
{
if(hate[{perm[i],perm[i+1]}]==true)
return false;
}
return true;
}
void bkt(int k,int n)
{
if(k==n+1)
{
if(verificare_no_hate(n)==true)
{
contor++;
if(contor==K)
{
afisare(n);
}
}
return;
}
else
{
int i;
for(i=1;i<=n;i++)
{
if(viz[i]==0)
{
viz[i]=1;
perm[k]=i;
bkt(k+1,n);
viz[i]=0;//undo
//perm[k]=0;//undo
}
}
}
}
int main()
{
int i;
fin>>N>>K>>M;
for(i=1;i<=M;i++)
{
int a,b;
fin>>a>>b;
hate[{a,b}]=true;
hate[{b,a}]=true;
}
bkt(1,N);
return 0;
}