Advertisement
a53

ComponenteConexe

a53
Dec 18th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. #include <fstream>
  2. #include <algorithm>
  3. #define Nmax 101
  4. using namespace std;
  5. ifstream f("componenteconexe.in");
  6. ofstream g("componenteconexe.out");
  7. int comp_con[Nmax][Nmax],cd[Nmax],n;
  8. bool muchie[Nmax][Nmax],viz[Nmax];
  9.  
  10. void BF(int nod)
  11. {
  12. int primul=0,ultimul=1;
  13. cd[ultimul]=nod;
  14. while(++primul<=ultimul)
  15. {
  16. nod=cd[primul];
  17. for(int i=1;i<=n;++i)
  18. if(muchie[nod][i]&&!viz[i])
  19. cd[++ultimul]=i,viz[i]=true;
  20. }
  21. ++comp_con[0][0],comp_con[comp_con[0][0]][0]=ultimul;
  22. for (int i=1;i<=ultimul;++i)
  23. comp_con[comp_con[0][0]][i]=cd[i];
  24. }
  25.  
  26. int main()
  27. {
  28. int x,y;
  29. f>>n;
  30. while(!f.eof())
  31. f>>x>>y,muchie[x][y]=muchie[y][x]=true;
  32. for(int i=1;i<=n;++i)
  33. if(!viz[i])
  34. viz[i]=true,BF(i);
  35. g<<comp_con[0][0]<<'\n';
  36. for(int i=1;i<=comp_con[0][0];++i)
  37. {
  38. sort(comp_con[i]+1,comp_con[i]+comp_con[i][0]+1);
  39. for(int j=1;j<=comp_con[i][0];++j)
  40. g<<comp_con[i][j]<<' ';
  41. g<<'\n';
  42. }
  43. return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement