Pagini recente » Cod sursa (job #3149674) | Cod sursa (job #402721) | Cod sursa (job #2984569) | Cod sursa (job #1898120) | Cod sursa (job #116411)
Cod sursa(job #116411)
#include <stdio.h>
#include <stdlib.h>
int n,m,k,dus[1001][1001],sel[1001],sol[1001],nr_perm = 0;
void back(int x)
{
if (x == n + 1)
{
nr_perm ++;
if (nr_perm == k)
{
for (int i = 1;i <= n;i ++)
printf("%d ",sol[i]);
exit(0);
}
return;
}
else
{
for (int i = 1;i <= n; i++)
if (x == 1)
{
if (sel[i] == 0)
{
sel[i] = 1;
sol[x] = i;
back(x+1);
sel[i] = 0;
sol[x] = 0;
}
}
else
{
if (sel[i] == 0 && dus[i][sol[x-1]]==0)
{
sel[i] = 1;
sol[x] = i;
back(x+1);
sel[i] = 0;
sol[x] = 0;
}
}
}
}
int main ()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d %d %d",&n,&k,&m);
for (int i = 1;i <= m; i++)
{
int a,b;
scanf("%d %d",&a,&b);
dus[a][b] = 1;
dus[b][a] = 1;
}
back (1);
return 0;
}