Pagini recente » Profil vladcoroian2001 | Cod sursa (job #1074549) | Cod sursa (job #1321519) | Cod sursa (job #2015366) | Cod sursa (job #413364)
Cod sursa(job #413364)
#include <fstream>
using namespace std;
void bkt(int k);
void afis();
int verif();
int f[1002], n, uz[1002], nr, p, m, a[1002][1002], q;
ifstream in("dusman.in");
ofstream out("dusman.out");
int main()
{
int i, j;
q=1;
in >> n >> p >> m;
while(!in.eof())
{
in >> i >> j;
a[i][j] = a[j][i] = 1;
}
bkt(1);
return 0;
}
void bkt(int k)
{
if(k-1==n)
{ if(verif()) q=0;
}
else if(q)
for(int i=1; i<=n; i++)
if(!uz[i])
{ f[k]=i;
uz[i]=1;
bkt(k+1);
uz[i]=0;
}
}
void afis()
{
for(int i=1; i<=n; i++)
out << f[i] << " ";
out << "\n";
}
int verif()
{
int ok=1;
for(int i=1; i<=n-1; i++)
if(a[f[i]][f[i+1]])
ok=0;
if(ok)
++nr;
if(nr==p) { afis();
return 1;
}
return 0;
}