Dennnhhhickk

Untitled

Oct 2nd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9. MAXIN = 10000;
  10.  
  11. var
  12. i, j, n, m, top, a, b, k, ans: integer;
  13. head, next, list, c: array [0..MAXIN] of integer;
  14. used: array [0..MAXIN] of boolean;
  15.  
  16. procedure clean();
  17. var
  18. i: integer;
  19. begin
  20. for i := 0 to MAXIN do
  21. begin
  22. list[i] := 0;
  23. head[i] := 0;
  24. next[i] := 0;
  25. used[i] := false;
  26. end;
  27. end;
  28.  
  29. procedure push(a, b: integer);
  30. begin
  31. inc(top);
  32. list[top] := b;
  33. next[top] := head[a];
  34. head[a] := top;
  35. end;
  36.  
  37. procedure rec(a: integer);
  38. var
  39. i: integer;
  40. bol: boolean;
  41. begin
  42.  
  43. if (used[b]) then
  44. begin
  45. bol := true;
  46. for i := 1 to k do
  47. bol := bol and (used[c[i]]);
  48. if bol then
  49. inc(ans);
  50. exit;
  51. end;
  52.  
  53. i := head[a];
  54.  
  55. while (list[i] <> 0) do
  56. begin
  57. if not(used[list[i]]) then
  58. begin
  59. used[list[i]] := true;
  60. rec(list[i]);
  61. used[list[i]] := false;
  62. end;
  63. i := next[i];
  64. end;
  65.  
  66. end;
  67.  
  68. begin
  69. readln(n, m);
  70. clean();
  71. ans := 0;
  72. top := 0;
  73.  
  74. for i := 1 to m do
  75. begin
  76. readln(a, b);
  77. push(a, b);
  78. end;
  79.  
  80. readln(a, b, k);
  81.  
  82. for i := 1 to k do
  83. readln(c[i]);
  84.  
  85. used[a] := true;
  86. rec(a);
  87.  
  88. writeln(ans);
  89. readln;
  90. readln;
  91. end.
Advertisement
Add Comment
Please, Sign In to add comment