Advertisement
NoHatred0

Conex_Cluburi

Mar 15th, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream f("club.in");
  5. ofstream g("club.out");
  6.  
  7. int n, viz[105], a[105][105],nc;
  8.  
  9. void citire()
  10. {
  11. int x,y;
  12. f>>n;
  13. while(!f.eof())
  14. {
  15. f>>x>>y;
  16. a[x][y]=1;
  17. a[y][x]=1;
  18. }
  19. }
  20. void df(int k)
  21. {
  22. int i;
  23. viz[k]=1;
  24. for(i=1;i<=n;i++)
  25. if(viz[i]==0 && a[k][i]==1)
  26. df(i);
  27. }
  28. void df_afisare(int k)
  29. {
  30. int i;
  31. viz[k]=1;
  32. g<<k<<" ";
  33. for(i=1;i<=n;i++)
  34. if(viz[i]==0 && a[k][i]==1)
  35. df_afisare(i);
  36. }
  37. int main()
  38. {
  39. int i;
  40. citire();
  41. df(1);
  42. nc=1;
  43. for(i=1;i<=n;i++)
  44. if(viz[i]==0)
  45. {
  46. nc++;
  47. df(i);
  48. }
  49. g<<nc<<endl;
  50. for(i=1;i<=n;i++) // reinitializez vectorul viz cu 0, pt a putea parcurge din nou
  51. viz[i]=0;
  52. df_afisare(1); // fac parcurgerea nodurilor din prima componenta conexa + afisez nodurile
  53. for(i=1;i<=n;i++)
  54. if(viz[i]==0) // daca in viz gasesc o valoare de 0, fac parcurgerea incepand cu acel nod, altfel afisand o noua componenta conexa
  55. {
  56. g<<endl;
  57. df_afisare(i);
  58. }
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement