Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. fstream f("componenteconexe1.in");
  8.  
  9. ofstream g("componenteconexe1.out");
  10.  
  11. int n,m,i,j,a[102][102],b,c,viz[102],C[102],pi,ps,k,nr,S,u,d[150],q,l,x[150];
  12.  
  13. int main()
  14.  
  15. {
  16.  
  17. f>>n;
  18.  
  19. while(f>>b&&f>>c)
  20.  
  21. {
  22.  
  23. a[b][c]=1; a[c][b]=1;
  24.  
  25. }
  26.  
  27. for(i=1; i<=n; i++) viz[i]=0;
  28.  
  29. S=0;
  30.  
  31. pi=1;
  32.  
  33. ps=1;
  34.  
  35. while(S<n)
  36.  
  37. {
  38.  
  39. for(i=1;i<=n;i++) if(viz[i]==0)
  40.  
  41. {
  42.  
  43. viz[i]=1;
  44.  
  45. pi=1;
  46.  
  47. ps=1;
  48.  
  49. k=i;
  50.  
  51. C[1]=k;
  52.  
  53. while(ps<=pi)
  54.  
  55. {
  56.  
  57. k=C[ps];
  58.  
  59. for(q=1;q<=n;q++)
  60.  
  61. if(a[q][k]==1 && viz[q]==0)
  62.  
  63. {
  64.  
  65. pi++;
  66.  
  67. C[pi]=q;
  68.  
  69. viz[q]=1;
  70.  
  71. }
  72.  
  73. ps++;
  74.  
  75. }
  76.  
  77. for(q=1;q<pi;q++)
  78.  
  79. for(j=q+1;j<=pi;j++){a[C[q]][C[j]]=1; a[C[j]][C[q]]=1; if(C[q]>C[j]) swap(C[q],C[j]);}
  80.  
  81. for(q=1;q<=pi;q++) {u++; d[u]=C[q];}
  82.  
  83. S=S+pi;
  84.  
  85. }
  86.  
  87. }
  88.  
  89. for(i=2; i<=u; i++) if(a[d[i-1]][d[i]]!=1) {nr++; l++; x[l]=d[i-1]; l++; x[l]=d[i];}
  90.  
  91. g<<nr; g<<endl;
  92.  
  93. for(i=1; i<=l; i++) if(i%2==1) {g<<x[i]<<" ";}
  94.  
  95. else g<<x[i]<<endl;
  96.  
  97. return 0;
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement