Pagini recente » Cod sursa (job #39869) | Cod sursa (job #1342568) | Cod sursa (job #742543) | Cod sursa (job #2202945) | Cod sursa (job #2005809)
#include <bits/stdc++.h>
#define maxN 100002
using namespace std;
FILE *fin = freopen("mesaj4.in", "r", stdin);
FILE *fout = freopen("mesaj4.out", "w", stdout);
/* ---------------------------------- */
int n, m;
vector < int > V[maxN];
/* ---------------------------------- */
bool vis[maxN];
/* ---------------------------------- */
int T;
struct Edge
{
int x, y;
} ans[maxN];
void dfs(int nod)
{
vis[nod] = 1;
for (int son : V[nod])
if (!vis[son])
{
dfs(son);
ans[++ T] = {son, nod};
}
}
int main()
{
scanf("%d\n%d", &n, &m);
for (int i = 1; i <= m; ++ i)
{
int x, y;
scanf("%d %d", &x, &y);
V[x].push_back(y);
V[y].push_back(x);
}
dfs(1);
if (T != n - 1)
printf("-1\n");
else
{
printf("%d\n", 2 * T);
for (int i = 1; i <= T; ++ i)
printf("%d %d\n", ans[i].x, ans[i].y);
for (int i = T; i >= 1; -- i)
printf("%d %d\n", ans[i].y, ans[i].x);
}
return 0;
}