Pagini recente » Cod sursa (job #1103897) | Cod sursa (job #270255) | Cod sursa (job #2733038) | Cod sursa (job #288372) | Cod sursa (job #2253546)
#include <cstdio>
#include <vector>
using namespace std;
const int MAX_N = 100000;
struct Structuras {
int x;
int y;
};
vector<int> g[1 + MAX_N];
bool viz[1 + MAX_N];
Structuras sol[1 + 4 * MAX_N];
int k;
void dfs(int vertex) {
viz[vertex] = true;
for (auto u : g[vertex]) {
if (!viz[u]) {
dfs(u);
sol[++k] = {u, vertex};
}
}
}
int main() {
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out", "w", stdout);
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
int x, y;
scanf("%d%d", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
for (int i = 2; i <= n; i++) {
if (!viz[i]) {
printf("-1\n");
return 0;
}
}
printf("%d\n", 2 * k);
for (int i = 1; i <= k; i++)
printf("%d %d\n", sol[i].x, sol[i].y);
for (int i = k; i >= 1; i--)
printf("%d %d\n", sol[i].y, sol[i].x);
return 0;
}