Pagini recente » Cod sursa (job #706794) | Cod sursa (job #2689360) | Cod sursa (job #949772) | Cod sursa (job #417197) | Cod sursa (job #552601)
Cod sursa(job #552601)
#include <stdio.h>
#include <vector>
using namespace std;
#define maxn 100010
long n, m, i, j, k, a, b, f[maxn], sa[maxn], sb[maxn];
vector<long> v[maxn];
void df(long nod)
{
if(f[nod])
return;
f[nod]=1;
for(vector<long> :: iterator it=v[nod].begin(); it!=v[nod].end(); it++)
if(f[(*it)]==0)
{
df(*it);
sa[++sa[0]]=(*it);
sb[++sb[0]]=nod;
}
}
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", &a, &b);
v[a].push_back(b);
v[b].push_back(a);
}
df(1);
if(sa[0]<n-1)
{
printf("-1\n");
return 0;
}
printf("%d\n", n*2-2);
for(i=1; i<n; ++i)
printf("%d %d\n", sa[i], sb[i]);
for(i=n-1; i; --i)
printf("%d %d\n", sb[i], sa[i]);
return 0;
}