Pagini recente » Cod sursa (job #2170001) | Cod sursa (job #400266) | Cod sursa (job #1311401) | Cod sursa (job #652404) | Cod sursa (job #2654852)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream si("mesaj4.in");
ofstream so("mesaj4.out");
bool viz[100005];
vector<int> v[100005];
vector<pair<int, int> > sol;
void dfs(int x) {
viz[x]=1;
for(int k=0; k<v[x].size(); k++)
if(!viz[v[x][k]]) {
sol.push_back(make_pair(v[x][k], x));
dfs(v[x][k]);
}
}
int main() {
int n, m;
si>>n>>m;
for(int i=1; i<=m; i++) {
int x, y;
si>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
bool conex=true;
for(int i=1; i<=n; i++)
if(!viz[i]) {
conex=false;
break;
}
if(!conex)
so<<"-1\n";
else {
so<<2*n-2<<'\n';
for(int i=n-2; i>=0; i--)
so<<sol[i].first<<' '<<sol[i].second<<'\n';
for(int i=0; i<n-1; i++)
so<<sol[i].second<<' '<<sol[i].first<<'\n';
}
return 0;
}