Pagini recente » Cod sursa (job #577632) | Cod sursa (job #2964790) | Cod sursa (job #3039686) | Cod sursa (job #2488936) | Cod sursa (job #2924271)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
vector<int> g[maxn];
bitset<maxn> vis;
vector<pair<int, int>> res;
void dfs(int x) {
vis[x]=1;
for (int v:g[x]) {
if (vis[v]) continue;
res.emplace_back(x, v);
dfs(v);
}
}
int main() {
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out", "w", stdout);
int n, m;
cin>>n>>m;
for (int i=0; i<m; ++i) {
int u, v;
cin>>u>>v;
g[u].emplace_back(v);
g[v].emplace_back(u);
}
int c=0;
for (int i=1; i<=n; ++i) {
if (!vis[i]) {
c++;
if (c == 2) {
return cout << -1 << '\n', 0;
}
dfs(i);
}
}
cout << 2 * (n-1) << '\n';
for (int i=n-2; i>=0; --i) {
cout << res[i].second << " " << res[i].first << '\n';
}
for (int i=0; i<n-1; ++i) {
cout << res[i].first << " " << res[i].second << '\n';
}
return 0;
}