YorKnEz

Untitled

Oct 12th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int n, m, x, y, p, q, r;
  4. int a[21][21], viz[21], sol[21];
  5.  
  6. bool isChain (int p, int q, int r, int v[], int len) {
  7. if (v[1] != p) return false;
  8. if (v[len-1] != q) return false;
  9.  
  10. for (int i = 2; i < len; i++) {
  11. if (v[i] == r) return true;
  12. }
  13.  
  14. return false;
  15. }
  16.  
  17. void DFS (int X, int len) {
  18. viz[X] = 1;
  19. sol[len++] = X;
  20.  
  21. for (int i = 1; i <= n; i++) {
  22. if (a[X][i] == 1 && viz[i] == 0) {
  23. DFS(i, len);
  24. }
  25. }
  26.  
  27. if (isChain(p, q, r, sol, len)) {
  28. for (int i = 1; i < len; i++) {
  29. printf("%d ", sol[i]);
  30. }
  31.  
  32. printf("\n");
  33. }
  34.  
  35. viz[X] = 0;
  36. }
  37.  
  38. int main() {
  39. freopen("lanturi.in", "r", stdin);
  40. freopen("lanturi.out", "w", stdout);
  41.  
  42. scanf("%d %d", &n, &m);
  43.  
  44. for (int i = 1; i <= m; i++) {
  45. scanf("%d %d", &x, &y);
  46.  
  47. a[x][y] = a[y][x] = 1;
  48. }
  49.  
  50. scanf("%d %d %d", &p, &q, &r);
  51.  
  52. DFS(p, 1);
  53.  
  54. return 0;
  55. }
Add Comment
Please, Sign In to add comment