Pagini recente » Cod sursa (job #4084) | Cod sursa (job #1625663) | Cod sursa (job #268784) | Cod sursa (job #3121409) | Cod sursa (job #2953214)
#include <bits/stdc++.h>
using namespace std;
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
const int N = 1e5;
int n, m;
vector <int> edges[N + 1];
int viz[N + 1];
vector <pair <int, int>> v;
void dfs(int nod)
{
viz[nod] = 1;
for(auto x:edges[nod])
{
if(!viz[x])
{
v.push_back({x, nod});
viz[x] = 1;
dfs(x);
}
}
}
int main()
{
in >> n >> m;
for(int i = 1; i <= m; i++)
{
int x, y;
in >> x >> y;
edges[x].push_back(y);
edges[y].push_back(x);
}
dfs(1);
for(int i = 1; i <= n; i++)
{
if(!viz[i])
{
out << -1;
return 0;
}
}
out << 2 * (n - 1) << '\n';
for(int i = v.size() - 1; i >= 0; i--)
out << v[i].first << ' ' << v[i].second << '\n';
for(int i = 0; i < v.size(); i++)
out << v[i].second << ' ' << v[i].first << '\n';
return 0;
}