Pagini recente » Cod sursa (job #2373262) | Cod sursa (job #2669966) | Cod sursa (job #1961463) | Cod sursa (job #1399464) | Cod sursa (job #2792514)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
const int kN = 1e5;
vector<int> g[1 + kN];
bitset<1 + kN> vis;
vector<pair<int, int>> sol;
void dfs(int u) {
vis[u] = true;
for (int v : g[u]) {
if (!vis[v]) {
sol.emplace_back(u, v);
dfs(v);
}
}
}
void TestCase() {
int n, m;
fin >> n >> m;
for (int i = 1; i <= m; ++i) {
int u, v;
fin >> u >> v;
g[u].emplace_back(v);
g[v].emplace_back(u);
}
dfs(1);
if ((int)sol.size() != n - 1) {
fout << "-1\n";
return;
}
fout << 2 * sol.size() << '\n';
for (int i = sol.size() - 1; i >= 0; --i) {
fout << sol[i].second << ' ' << sol[i].first << '\n';
}
for (auto it : sol) {
fout << it.first << ' ' << it.second << '\n';
}
}
int main() {
int tests = 1;
for (int tc = 1; tc <= tests; ++tc) {
TestCase();
}
fin.close();
fout.close();
return 0;
}