Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int n, m, x, y, p, q, r;
- int a[21][21], viz[21], sol[21];
- bool isChain (int p, int q, int r, int v[], int len) {
- if (v[1] != p) return false;
- if (v[len-1] != q) return false;
- for (int i = 2; i < len; i++) {
- if (v[i] == r) return true;
- }
- return false;
- }
- void DFS (int X, int len) {
- viz[X] = 1;
- sol[len++] = X;
- for (int i = 1; i <= n; i++) {
- if (a[X][i] == 1 && viz[i] == 0) {
- DFS(i, len);
- }
- }
- if (isChain(p, q, r, sol, len)) {
- for (int i = 1; i < len; i++) {
- printf("%d ", sol[i]);
- }
- printf("\n");
- }
- viz[X] = 0;
- }
- int main() {
- freopen("lanturi.in", "r", stdin);
- freopen("lanturi.out", "w", stdout);
- scanf("%d %d", &n, &m);
- for (int i = 1; i <= m; i++) {
- scanf("%d %d", &x, &y);
- a[x][y] = a[y][x] = 1;
- }
- scanf("%d %d %d", &p, &q, &r);
- DFS(p, 1);
- return 0;
- }
Add Comment
Please, Sign In to add comment