Răspuns :
Răspuns:
1
1 3
Explicație:
#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;
}