Pagini recente » Cod sursa (job #1625270) | Cod sursa (job #1215587) | Cod sursa (job #185703) | Cod sursa (job #1723517) | Cod sursa (job #1300997)
#include<cstdio>
#include<vector>
#define NMAX 100005
using namespace std;
int n,m,i,x,y;
int viz[NMAX];
vector<int>v[NMAX];
struct muchie
{
int l,r;
};
vector<muchie>sol;
muchie pp(int x,int y)
{
muchie X;X.l=x;X.r=y;
return X;
}
void DFS(int nod)
{
viz[nod]=1;
vector<int>::iterator it;
for (it=v[nod].begin();it!=v[nod].end();++it)
{
if (viz[*it]==0)
{
sol.push_back(pp(*it,nod));
DFS(*it);
}
}
}
void afis(vector<muchie>::iterator it)
{
if (it!=sol.end())
{
muchie X=*it;
printf("%d %d\n",X.l,X.r);
++it;
afis(it);
printf("%d %d\n",X.r,X.l);
}
}
int main()
{
freopen("mesaj4.in","r",stdin);
freopen("mesaj4.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
DFS(1);
if (sol.size()!=n-1) {printf("-1\n");return 0;}
else
{
int nr=2*(n-1);
printf("%d\n",nr);
vector<muchie>::iterator it;
it=sol.begin();
afis(it);
}
return 0;
}