Pagini recente » Cod sursa (job #413037) | Cod sursa (job #615977) | Cod sursa (job #1403786) | Cod sursa (job #544143) | Cod sursa (job #2659162)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
int n, m;
bool use[100100];
vector<vector<int>> adj;
vector<pair<int, int>> ans;
void solve(int node)
{
use[node] = true;
for(auto it : adj[node])
{
if(!use[it])
{
ans.emplace_back(it, node);
solve(it);
}
}
}
int main()
{
in >> n >> m;
adj.resize(n + 5);
for(int i = 1; i <= m; i++)
{
int x, y;
in >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
solve(1);
for(int i = 1; i <= n; i++)
{
if(!use[i])
{
out << -1 << '\n';
return 0;
}
}
int len = ans.size();
out << 2 * len << '\n';
for(int i = len - 1; i >= 0; i--)
out << ans[i].first << ' ' << ans[i].second << '\n';
for(int i = 0; i < len; i++)
out << ans[i].second << ' ' << ans[i].first << '\n';
return 0;
}