Pagini recente » Cod sursa (job #2226244) | Cod sursa (job #2042972) | Cod sursa (job #1875932) | Cod sursa (job #1505895) | Cod sursa (job #117403)
Cod sursa(job #117403)
#include <stdio.h>
#include <stdlib.h>
int s[1001], n, m, d[1001][4], k;
void citire()
{
freopen("dusmani.in","r",stdin);
freopen("dusmani.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 (nivel > n) {k--; if (!k) afis();}
else
for (i = 1; i <= n; i++)
{
ok = 1;
for (j = 1; j < nivel; j++) if (s[j] == i) {ok = 0; break;}
if (ok)
{
for (j = 1; j <= d[i][0]; j++)
if (s[nivel - 1] == d[i][j]) {ok = 0; break;}
if (ok)
{
s[nivel] = i;
back(nivel + 1);
}
}
}
}
int main()
{
citire();
back(1);
return 0;
}