Advertisement
Saleh127

UVA 315/ Articulation Point

Aug 10th, 2021
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  5. ll a[205];
  6. vector<ll>g[205];
  7. bool v[205];
  8. ll timer;
  9. ll low[205],in[205];
  10.  
  11.  
  12. void dfs(ll vertex,ll parent)
  13. {
  14. v[vertex]=1;
  15.  
  16. low[vertex] = in[vertex] = ++timer;
  17.  
  18. ll edge=0;
  19.  
  20. for(auto child:g[vertex])
  21. {
  22. if(child==parent) continue;
  23.  
  24. if(v[child])
  25. {
  26. low[vertex]=min(low[vertex],in[child]);
  27. }
  28. else
  29. {
  30. dfs(child,vertex);
  31.  
  32. if(low[child]>=in[vertex] && parent!=-1)
  33. {
  34. a[vertex]=1;
  35. }
  36. low[vertex]=min(low[vertex],low[child]);
  37.  
  38. edge++;
  39. }
  40. }
  41.  
  42. if(parent==-1 && edge>1)
  43. {
  44. a[vertex]=1;
  45. }
  46. }
  47.  
  48.  
  49. void clr(ll n)
  50. {
  51. for(ll i=0; i<n+4; i++)
  52. {
  53. g[i].clear();
  54. v[i]=0;
  55. low[i]=-1;
  56. in[i]=-1;
  57. a[i]=0;
  58. }
  59.  
  60. timer=0;
  61. }
  62.  
  63. int main()
  64. {
  65.  
  66.  
  67. ll n,m,i,j,k,l,rr=1;
  68. string c,d;
  69.  
  70. char cc;
  71.  
  72. while(scanf("%lld",&n))
  73. {
  74. if(n==0) break;
  75.  
  76. clr(n);
  77.  
  78. while(scanf("%lld",&m))
  79. {
  80. if(m==0) break;
  81.  
  82. while(scanf("%c",&cc))
  83. {
  84. if(cc=='\n') break;
  85.  
  86. cin>>k;
  87. g[m].push_back(k);
  88. g[k].push_back(m);
  89. }
  90. }
  91.  
  92. for(i=1;i<=n;i++)
  93. {
  94. if(v[i]==0)
  95. {
  96. dfs(i,-1);
  97. }
  98. }
  99.  
  100. l=0;
  101.  
  102. for(i=1;i<=n;i++)
  103. {
  104. if(a[i]==1) l++;
  105. }
  106.  
  107. printf("%lld\n",l);
  108. }
  109.  
  110.  
  111. return 0;
  112. }
  113.  
  114.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement