Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6. fstream fin("meh.txt");
  7.  
  8. struct nod
  9. {
  10. int vecini[20], vizitat=0, parinte=0, nivel, low;
  11. };
  12.  
  13. int numara(int x, int n, nod nod[])
  14. {
  15. int counter=0;
  16.  
  17. for(int i=1; i<=n; i++)
  18. if(nod[x].vecini[i] == 1 && i != x)
  19. counter++;
  20.  
  21. return counter;
  22.  
  23. }
  24.  
  25. void DFS(int x, int n, nod nod[],int nivel)
  26. {
  27. //cout<<x<<" ";
  28. int i;
  29.  
  30. nod[x].vecini[x]=1;
  31. nod[x].vizitat=1;
  32.  
  33. nod[x].nivel = nod[x].low = ++nivel;
  34.  
  35. for(i=1; i <= n; i++)
  36. if(nod[x].vecini[i] == 1 && !nod[i].vizitat)
  37. {
  38. DFS(i,n,nod,nivel);
  39.  
  40. //cout<<i<<" ";
  41. nod[x].low = min(nod[x].low,nod[i-1].low);
  42.  
  43. if(nod[i-1].low >= nod[x].nivel || (!nod[x].parinte && numara(x,n,nod) > 1))
  44. cout<<x<<" e punct de articulatie."<<endl;
  45. }
  46.  
  47. }
  48.  
  49. int main()
  50. {
  51. nod nod[20];
  52. int nr_noduri, nr_muchii, x,y,aux;
  53.  
  54. fin>>nr_noduri>>nr_muchii;
  55.  
  56. aux=nr_muchii;
  57.  
  58. while(aux)
  59. {
  60. fin>>x>>y;
  61.  
  62. nod[x].vecini[y]=nod[y].vecini[x]=1;
  63. nod[y].parinte=x;
  64. aux--;
  65. }
  66.  
  67. DFS(1,nr_noduri,nod,0);
  68.  
  69. return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement