Pagini recente » Cod sursa (job #2092446) | Cod sursa (job #819008) | Cod sursa (job #52241) | Cod sursa (job #2633665) | Cod sursa (job #466036)
Cod sursa(job #466036)
#include<fstream>
#include<vector>
#define dmax 100004
using namespace std;
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
int n,m,ok=1,crt;
bool t[dmax];
vector<int>g[dmax];
struct s
{ int x;
int y;
} sol[dmax];
void dfs(int k)
{ vector<int>::iterator it;
for(it=g[k].begin();it<g[k].end();it++)
if(!t[*it])
{ crt++;
sol[crt].x=k;
sol[crt].y=*it;
t[*it]=1;
dfs(*it);
}
}
void solve()
{ int i;
out<<2*(n-1)<<'\n';
t[1]=1;
dfs(1);
for(i=crt;i>=1;i--)
out<<sol[i].y<<" "<<sol[i].x<<'\n';
for(i=1;i<=crt;i++)
out<<sol[i].x<<" "<<sol[i].y<<'\n';
}
int main()
{ int i,j,a,b;
in>>n>>m;
for(i=1;i<=m;i++)
{ in>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
in.close();
for(i=1;i<=n;i++)
if(g[i].empty() )
ok=0;
if(!ok)
out<<"-1";
else solve();
out.close();
return 0;
}