Pagini recente » Cod sursa (job #456657) | Cod sursa (job #1983529) | Cod sursa (job #3252666) | Cod sursa (job #2947175) | Cod sursa (job #2660466)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dusman.in");
ofstream out("dusman.out");
int stck[1001];
int n, kp, m;
bool mat[1001][1001];
int rd1, rd2;
bool viz[1001];
void readit()
{
in>>n>>kp>>m;
while(m--) in>>rd1>>rd2, mat[rd1][rd2]=mat[rd2][rd1]=1;
}
void bk(int k)
{
for(int i=1; i<=n && kp>0; i++)
{
while(i<=n && viz[i]) ++i;
stck[k]=i;
if((!k || !mat[stck[k]][stck[k-1]]) && k<n && !viz[i] && i<=n)
{
viz[i]=1;
if(k==n-1) --kp;
else bk(k+1);
viz[i]=0;
}
}
}
int main()
{
readit();
bk(0);
for(int i=0; i<n; i++) out<<stck[i]<<' ';
return 0;
}