Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1.  
  2. #define _CRT_SECURE_NO_WARNINGS
  3.  
  4. #include <iostream>
  5. #include <stdio.h>
  6. #include <set>
  7. #include <vector>
  8. #include <memory>
  9. #include <algorithm>
  10. #include <iomanip>
  11. #include <string>
  12. #include <cmath>
  13. #include <bitset>
  14. #include <map>
  15. #include <deque>
  16. #include <queue>
  17. #include <unordered_map>
  18. #include <stack>
  19. #include <random>
  20. #include <tuple>
  21. #include <string.h>
  22. #include <list>
  23. #include <unordered_set>
  24. #include <complex>
  25.  
  26. using namespace std;
  27.  
  28. using ll = long long int;
  29. using pp = pair<int, int>;
  30. using tt = tuple<int, int, int>;
  31. using ld = long double;
  32.  
  33. const int inf = (int)1e9;
  34. const int mod = (int)1e9 + 7;
  35. //const int mod = 998244353;
  36. //const ll inf = (ll)1e18;
  37.  
  38. #define umap unordered_map
  39. #define uset unordered_set
  40. #define Power ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  41. #define all(x) x.begin(), x.end()
  42. #define len(x) (int)x.size()
  43. #define pb push_back
  44.  
  45. random_device rd;
  46. mt19937_64 mers(rd());
  47.  
  48. vector<vector<int>> t;
  49. vector<vector<int>> gr;
  50. vector<bool> used;
  51. vector<int> f, tin;
  52. int timer = 0;
  53. vector<bool> soch;
  54. vector<pp> pos;
  55.  
  56. void dfs(int v, int p = -1) {
  57.     f[v] = tin[v] = timer++;
  58.     used[v] = true;
  59.     int ch = 0;
  60.     if (p != -1)
  61.         gr[v].pb(p);
  62.     for (auto to : t[v])
  63.         if (!used[to]) {
  64.             dfs(to, v);
  65.             f[v] = min(f[v], f[to]);
  66.             if (f[to] >= tin[v] && p != -1)
  67.                 soch[v] = true;
  68.             else
  69.                 gr[v].pb(to);
  70.             ch++;
  71.         }
  72.         else if(to != p)
  73.             f[v] = min(f[v], tin[to]);
  74.     if (p == -1 && ch > 1)
  75.         soch[v] = true;
  76. }
  77.  
  78. ld getangle(int a, int b, int v) {
  79.     ld x1, x2, y1, y2;
  80.     ld x, y;
  81.     tie(x1, y1) = pos[a];
  82.     tie(x2, y2) = pos[b];
  83.     tie(x, y) = pos[v];
  84.  
  85.  
  86. }
  87.  
  88. int main() {
  89.    
  90.     Power;
  91.  
  92. #ifdef _DEBUG
  93.     (void)freopen("input.txt", "r", stdin);
  94.     (void)freopen("output.txt", "w", stdout);
  95. #else
  96.     //(void)freopen("gangsters.in", "r", stdin);
  97.     //(void)freopen("gangsters.out", "w", stdout);
  98. #endif
  99.  
  100.     int n, m;
  101.     cin >> n >> m;
  102.  
  103.     pos.resize(n);
  104.     for (int i = 0; i < n; i++)
  105.         cin >> pos[i].first >> pos[i].second;
  106.  
  107.     t.resize(n);
  108.     for (int i = 0; i < m; i++) {
  109.         int a, b;
  110.         cin >> a >> b;
  111.         a--;
  112.         b--;
  113.         t[a].pb(b);
  114.         t[b].pb(a);
  115.     }
  116.  
  117.     used.assign(n, false);
  118.     tin.assign(n, 0);
  119.     f.assign(n, 0);
  120.     soch.assign(n, false);
  121.     timer = 0;
  122.     dfs(0);
  123.  
  124.    
  125.  
  126.     return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement