Pagini recente » Cod sursa (job #1173556) | Cod sursa (job #944362)
Cod sursa(job #944362)
#include <fstream>
using namespace std;
struct om
{
int dusmani[4];
}v[1002];
ifstream cin("dusman.in");
ofstream cout("dusman.out");
bool sunt_dusmani(int a,int b)
{
int i;
bool gasit=false;
for(i=1;i<=v[a].dusmani[0];i++)
if(v[a].dusmani[i]==b)
{
gasit=true;
break;
}
if(gasit)
return true;
return false;
}
int sol[1001];
int gasite;
int n,k;
bool frec[1001];
bool stop;
void back(int poz)
{
int i;
if(stop)
return;
if(poz==(n+1))
{
gasite++;
if(gasite==k)
{
stop=true;
for(i=1;i<=n;i++)
{
cout<<sol[i]<<' ';
}
cout<<'\n';
return;
}
}
else
{
for(i=1;i<=n && !stop;i++)
if(!frec[i] && !sunt_dusmani(i,sol[poz-1]))
{
sol[poz]=i;
frec[i]=1;
back(poz+1);
frec[i]=0;
sol[poz]=0;
}
}
}
int main()
{
int m,i,a,b;
cin>>n>>k>>m;
for(i=1;i<=n;i++)
{
v[i].dusmani[0]=0;
}
for(i=0;i<m;i++)
{
cin>>a>>b;
v[a].dusmani[++v[a].dusmani[0]]=b;
v[b].dusmani[++v[b].dusmani[0]]=a;
}
back(1);
//system("PAUSE");
cin.close();
cout.close();
return 0;
}