Advertisement
artemgf

Оборотень

Jun 13th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #pragma once
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #define _USE_MATH_DEFINES
  4. #include <iostream>
  5. #include <string>
  6. #include <map>
  7. #include <set>
  8. #include <algorithm>
  9. #include <vector>
  10. #include <stdio.h>
  11. #include <cmath>
  12. #include <math.h>
  13. #include <queue>
  14. #include <stack>
  15. #include <climits>
  16. #include <deque>
  17. #include <ctime>
  18. #include <iomanip>
  19. #include <bitset>
  20. #include <unordered_map>
  21. #include <unordered_set>
  22.  
  23. using namespace std;
  24.  
  25. typedef long long ll;
  26. typedef unsigned long long ull;
  27. typedef unsigned int ui;
  28.  
  29. #define mh() make_heap()
  30. #define poph() pop_heap()
  31. #define pushh() push_heap()
  32. #define sor(n) n.begin(), n.end()
  33. #define rsor(n) n.rbegin(), n.rend()
  34. #define mp make_pair
  35. #define files freopen("input.txt", "rt", stdin); freopen("output.txt", "wt", stdout)
  36. #define p(T) pair<T,T>
  37. #define toch(x) cout.precision(x), cout.setf(ios::fixed)
  38. #define znac(l) abs(l)/l
  39. #define IOS ios::sync_with_stdio(false)
  40. #define IOSB cin.tie(0), cout.tie(0);
  41. const ll ok = ll(1e9 + 7);
  42.  
  43. void dfs(ll v, vector<vector<ll>>&graf, vector<ll>&used)
  44. {
  45.     for (int i = 0; i < graf[v].size(); i++)
  46.     {
  47.         if (!used[graf[v][i]])
  48.         {
  49.             used[graf[v][i]] = 1;
  50.             dfs(graf[v][i], graf, used);
  51.         }
  52.     }
  53. }
  54. int main()
  55. {
  56.     IOSB;
  57.     IOS;
  58. #ifdef TheCompiler
  59.     files;
  60. #endif
  61.     ll n;
  62.     cin >> n;
  63.     vector<vector<ll>>graf1(n + 1);
  64.     vector<vector<ll>>graf2(n + 1);
  65.     string s;
  66.     cin >> s;
  67.     while(s!="BLOOD")
  68.     {
  69.         ll b;
  70.         ll a = atoi(s.c_str());
  71.         cin >> b;
  72.         graf1[a].push_back(b);
  73.         graf2[b].push_back(a);
  74.         cin >> s;
  75.     }
  76.     ll k;
  77.     vector<ll>used(n+1, 0);
  78.     while(cin >> k)
  79.     {
  80.         used[k] = 1;
  81.         dfs(k, graf1, used);
  82.         dfs(k, graf2, used);
  83.     }
  84.     set<ll>ans;
  85.     for (int i = 1; i <= n; i++)
  86.     {
  87.         if (!used[i])
  88.         {
  89.             ans.insert(i);
  90.         }
  91.     }
  92.     if (ans.size() == 0)
  93.     {
  94.         cout << 0;
  95.     }
  96.     else
  97.     for (auto i = ans.begin(); i != ans.end(); i++)
  98.     {
  99.         cout << *i << " ";
  100.     }
  101.     return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement