Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- fstream f("componenteconexe1.in");
- ofstream g("componenteconexe1.out");
- 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];
- int main()
- {
- f>>n;
- while(f>>b&&f>>c)
- {
- a[b][c]=1; a[c][b]=1;
- }
- for(i=1; i<=n; i++) viz[i]=0;
- S=0;
- pi=1;
- ps=1;
- while(S<n)
- {
- for(i=1;i<=n;i++) if(viz[i]==0)
- {
- viz[i]=1;
- pi=1;
- ps=1;
- k=i;
- C[1]=k;
- while(ps<=pi)
- {
- k=C[ps];
- for(q=1;q<=n;q++)
- if(a[q][k]==1 && viz[q]==0)
- {
- pi++;
- C[pi]=q;
- viz[q]=1;
- }
- ps++;
- }
- for(q=1;q<pi;q++)
- 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]);}
- for(q=1;q<=pi;q++) {u++; d[u]=C[q];}
- S=S+pi;
- }
- }
- 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];}
- g<<nr; g<<endl;
- for(i=1; i<=l; i++) if(i%2==1) {g<<x[i]<<" ";}
- else g<<x[i]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement