Pagini recente » Cod sursa (job #2800724) | Cod sursa (job #2881041) | Cod sursa (job #1246934) | Cod sursa (job #2382882) | Cod sursa (job #735703)
Cod sursa(job #735703)
#include<cstdio>
#include<vector>
#define x first
#define y second
#define PP pair
#define dim 100005
using namespace std;
vector<int> a[dim];
PP<int, int> GOOD[dim+dim];
int n,m,nr;
int V[dim];
inline void dfs(int k)
{
int i;
V[k]=1;
for(i=0;i<a[k].size();++i)
if(!V[a[k][i]])
{
dfs(a[k][i]);
GOOD[++nr].x=k;
GOOD[nr].y=a[k][i];
}
}
int i,X,Y;
bool ok=1;
int main()
{
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i=1;i<=m;++i)
{
scanf("%d %d", &X, &Y);
a[X].push_back(Y);
a[Y].push_back(X);
}
dfs(1);
for(i=1;i<n;++i)
if(V[i]==0)
{
ok=0;
break;
}
if(!ok)
printf("-1\n");
else
{
printf("%d\n", 2*(n-1));
for(i=1;i<=nr;++i)
printf("%d %d\n",GOOD[i].y,GOOD[i].x);
for(i=nr;i>=1;--i)
printf("%d %d\n",GOOD[i].x,GOOD[i].y);
}
return 0;
}