Pagini recente » Cod sursa (job #769033) | Cod sursa (job #1948455) | Cod sursa (job #955975) | Cod sursa (job #1030257) | Cod sursa (job #117413)
Cod sursa(job #117413)
#include <stdio.h>
#include <stdlib.h>
int s[1001], n, m, d[1001][4], k, viz[1001];
void citire()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
int i, x, y;
scanf("%d %d %d", &n, &k, &m);
for (i = 1; i <= m; i++)
{
scanf("%d %d",&x, &y);
d[x][++d[x][0]] = y;
d[y][++d[y][0]] = x;
}
}
void afis()
{
int i;
for (i = 1; i <= n; i++) printf("%d ",s[i]);
printf("\n");
exit (0);
}
void back(int nivel)
{
int i, j, ok;
if (k < 0) return;
else
if (nivel > n) {k--; if (!k) afis(); return;}
for (i = 1; i <= n; i++)
{
ok = 1;
for (j=1; j <= 3; j++)
if (d[i][j] && d[i][j] == s[nivel - 1]) {ok = 0; break;}
if (!viz[i] && ok)
{
viz[i] = 1;
s[nivel] = i;
back(nivel+1);
viz[i] = 0;
}
}
}
int main()
{
citire();
back(1);
return 0;
}