Pagini recente » Cod sursa (job #365670) | Cod sursa (job #1412875) | Cod sursa (job #555219) | Cod sursa (job #770017) | Cod sursa (job #2792124)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("mesaj4.in");
ofstream cout("mesaj4.out");
const int Nmax =100003;
vector <int> G[Nmax];
pair <int, int> a[Nmax];
int n,m, nr,ok=1;
bool v[Nmax];
void dfs(int nod, int T)
{
v[nod] = 1;
a[++nr] = {T, nod};
for(auto i : G[nod])
if(!v[i])
dfs(i, nod);
}
int main()
{
int i,x,y;
cin >> n>> m;
for(i = 1; i <= m; i++)
{
cin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
dfs(1, 0);
for( i = 1; i <= n; i++)
if(!v[i])
{
ok=0;
break;
}
if(ok==0)
{
cout << "-1"<<'\n';
}
else
{
cout << 2*(n - 1) << '\n';
for( i = 2; i <= nr; i++)
cout << a[i].first << " " << a[i].second << '\n';
for( i = nr; i >=2; i--)
cout << a[i].second << " " << a[i].first << '\n';
}
return 0;
}