Pagini recente » Cod sursa (job #1836101) | Cod sursa (job #1980756) | Cod sursa (job #1203205) | Cod sursa (job #2043243) | Cod sursa (job #466493)
Cod sursa(job #466493)
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> v[100006];
struct muc
{
int x,y;
};
muc leg[200006];
int q[100006],sol,inc;
int n,m,viz[100006],sf;
int main ()
{
int i,a,b,nr,nod;
freopen("mesaj4.in","r",stdin);
freopen("mesaj4.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
inc=sf=1;
q[1]=1;
viz[1]=1;
while(inc<=sf)
{
nod=q[inc];
nr=v[nod].size();
for(i=0;i<nr;i++)
if(!viz[v[nod][i]])
{
leg[++sol].x=nod;
leg[sol].y=v[nod][i];
viz[v[nod][i]]=1;
q[++sf]=v[nod][i];
}
inc++;
}
for(i=1;i<=n;i++)
if(!viz[i])
{
printf("-1\n");
return 0;
}
printf("%d\n",2*sol);
for(i=sol;i>=1;i--)
printf("%d %d\n",leg[i].y,leg[i].x);
for(i=1;i<=sol;i++)
printf("%d %d\n",leg[i].x,leg[i].y);
return 0;
}