Pagini recente » Clasamentul arhivei de probleme | Cod sursa (job #3192808) | Cod sursa (job #1334298) | Cod sursa (job #545407) | Cod sursa (job #2660463)
#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++)
{
stck[k]=i;
if((!k || !mat[stck[k]][stck[k-1]]) && k<n && !viz[i])
{
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;
}