Pagini recente » Cod sursa (job #761503) | Cod sursa (job #1479200) | Cod sursa (job #376805) | Cod sursa (job #1183327) | Cod sursa (job #446151)
Cod sursa(job #446151)
#include <stdio.h>
char a[1001][1001];
int st[1001];
int n, m, K;
int i, j, k;
int AS, nr;
void init (int k, int st[100])
{
st[k] = 0;
}
int am_succesor (int k, int st[100])
{
if (st[k] < n)
{
st[k] ++;
return 1;
}
return 0;
}
int e_valid (int k, int st[100])
{
for (i=1; i<k; ++i)
if (st[k] == st[i] || a[st[k]][st[k-1]] == 1)
return 0;
return 1;
}
int solutie (int k)
{
if (k == n + 1)
return 1;
return 0;
}
void tipar ()
{
for (i=1; i<=n; ++i)
printf ("%d ", st[i]);
printf ("\n");
}
void back (int k)
{
if (solutie (k))
{
nr ++;
if (nr == K)
{
tipar ();
return 0;
}
}
else
{
init (k, st);
while (am_succesor (k, st))
if (e_valid (k, st))
back (k + 1);
}
}
int main ()
{
freopen ("dusman.in","r", stdin);
freopen ("dusman.out","w",stdout);
scanf ("%d %d %d", &n, &K, &m);
for (k=1; k<=m; ++k)
{
scanf ("%d %d", &i, &j);
a[i][j] = a[j][i] = 1;
}
back (1);
return 0;
}