Pagini recente » Cod sursa (job #2235881) | Cod sursa (job #2208155) | Cod sursa (job #1834951) | Cod sursa (job #543033) | Cod sursa (job #2255044)
#include <cstdio>
#include <vector>
using namespace std;
vector<int> g[100005];
bool viz[100005];
struct Solutie
{
int x,y;
} sol[400005];
int n,k;
int dfs(int nod)
{
viz[nod]=1;
for(int i=0; i<g[nod].size(); i++)
if(viz[g[nod][i]]==0){
dfs(g[nod][i]);
sol[++k].y=nod;
sol[k].x=g[nod][i];
}
}
int main()
{ freopen("mesaj4.in", "r",stdin);
freopen("mesaj4.out", "w",stdout);
int m,i,x,y;
scanf("%d%d", &n, &m);
for(i=1; i<=m; i++){
scanf("%d%d", &x, &y);
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
for(i=1; i<=n; i++)
if(viz[i]==0){
printf("-1");
return 0;
}
printf("%d\n", 2*k);
for(i=1; i<=k; i++)
printf("%d %d\n", sol[i].x, sol[i].y);
for(i=k; i>=1; i--)
printf("%d %d\n", sol[i].y, sol[i].x);
return 0;
}