Pagini recente » Cod sursa (job #553587) | Cod sursa (job #2824643) | Cod sursa (job #1995856) | Cod sursa (job #2411900) | Cod sursa (job #2885207)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("mesaj4.in");
ofstream cout("mesaj4.out");
int n, m;
vector<vector<int>> gr;
int vis[100002];
vector<pair<int, int>> ans;
void dfsb(int act) {
vis[act] = 1;
for (auto k : gr[act]) {
if (vis[k]==0) {
dfsb(k);
ans.push_back({ k, act });
}
}
}
void dfs(int act) {
vis[act] = 1;
for (auto k : gr[act]) {
if (vis[k]==0) {
ans.push_back({ act, k });
dfs(k);
}
}
}
int main() {
cin >> n >> m;
for (int i = 0; i <= n; i++) {
gr.emplace_back(vector<int>());
}
int x, y;
for (int i = 1; i <= m; i++) {
cin >> x >> y;
gr[x].emplace_back(y);
gr[y].emplace_back(x);
}
dfsb(1);
for (int i = 1; i <= n; i++) {
if (vis[i] == 0) {
cout << -1;
return 0;
}
vis[i] = 0;
}
dfs(1);
cout << ans.size() << '\n';
for (int i = 0; i < ans.size(); i++) {
cout << ans[i].first << ' ' << ans[i].second << '\n';
}
}