Pagini recente » Borderou de evaluare (job #3343701) | Cod sursa (job #3364990) | Cod sursa (job #3364988)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,K,m,cnt=0,d[1005][5],st[1005];
bool fr[1005];
bool valid(int k)
{
if(fr[st[k]]==true) return 0;//l am mai pus
for(int i=1; i<=d[k][0]; i++)
{
if(st[k-1]==d[st[k]][i]) return 0;//e dusman
}
return 1;
}
void afis()
{
for(int i=1; i<=n; i++)
fout<<st[i]<<" ";
fout<<'\n';
}
void bk(int k)
{
for(int i=1; i<=n; i++)
{
st[k]=i;
if(valid(k))
{
fr[st[k]]=true;
if(k==n)
{
cnt++;
if(cnt==K)
{
afis();
exit(0);
}
}
else bk(k+1);
fr[st[k]]=false;
}
}
}
int main()
{
fin>>n>>K>>m;
int a,b;
for(int i=1; i<=m; i++)
{
fin>>a>>b;
d[a][++d[a][0]]=b;
d[b][++d[b][0]]=a;
}
bk(1);
return 0;
}