Pagini recente » Cod sursa (job #964204) | Cod sursa (job #533654) | Cod sursa (job #90514) | Cod sursa (job #2625695) | Cod sursa (job #3166898)
#include <iostream>
#include <vector>
using namespace std;
vector <int> g[100005];
vector <pair<int, int>> parcurgere;
bool vizited[100005];
void dfs (int nod)
{
vizited[nod]=1;
for (int i=0; i<g[nod].size(); i++) {
int vecin=g[nod][i];
if (!vizited[vecin]) {
parcurgere.push_back({nod, vecin});
dfs(vecin);
}
}
}
int main() {
int n, m, x, y;
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out","w", stdout);
cin>>n>>m;
for (int i=1; i<=m; i++) {
cin>>x>>y;
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
bool conex=true;
for (int i=1; i<=n; i++) {
if (!vizited[i]) {
conex=false;
break;
}
}
if (conex) {
cout<<2*parcurgere.size()<<'\n';
for (int i=0; i<parcurgere.size(); i++)
cout<<parcurgere[i].first<<' '<<parcurgere[i].second<<'\n';
for (int i=parcurgere.size()-1; i>=0; i--)
cout<<parcurgere[i].second<<' '<<parcurgere[i].first<<'\n';
}
else cout<<-1;
return 0;
}