Pagini recente » Cod sursa (job #1002012) | Cod sursa (job #2284290) | Cod sursa (job #2074642) | Cod sursa (job #657351) | Cod sursa (job #218906)
Cod sursa(job #218906)
#include <stdio.h>
#define NMAX 1050
FILE *f = fopen("dusman.in", "r"), *g = fopen("dusman.out", "w");
int a[NMAX][5], st[NMAX];
int n, p, m;
int main()
{
fscanf(f, "%d %d %d", &n, &p, &m);
for (int i = 1; i <= m; i++)
{int x, y;
fscanf(f, "%d %d", &x, &y);
a[x][++a[x][0]] = y;
a[y][++a[y][0]] = x;
}
fclose(f);
int k = 1;
st[1] = 0;
int numar = 0;
while (k > 0)
{int as, ev;
do
{as = 0;
if (st[k] < n) {st[k]++;
as = 1;
}
if (as) {ev = 1;
for (int i = 1; i < k; i++)
if (st[k] == st[i]) ev = 0;
if (k > 1)
for (int i = 1; i <= a[st[k]][0]; i++)
if (a[st[k]][i] == st[k - 1]) ev = 0;
}
}
while (!((!as) || (as && ev)));
if (as)
if (k == n) {numar++;
if (numar == p) break;
}
else
{k++;
st[k] = 0;
}
else k--;
}
for (int i = 1; i <= n; i++)
fprintf(g, "%d ", st[i]);
fclose(g);
return 0;
}