Pagini recente » Cod sursa (job #2629234) | Cod sursa (job #791536) | Cod sursa (job #922070) | Cod sursa (job #500701) | Cod sursa (job #2557501)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
bitset<N> viz;
vector<int> v[N];
vector<pair<int,int>> ans;
int k;
void optim(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
void dfs(int x){
viz[x] = 1;
for (int i = 0; i<v[x].size(); i++)
{
int it = v[x][i];
if (!viz[it]){
dfs(it);
ans.push_back({it,x});
}
}
}
int main(){
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out", "w", stdout);
optim();
int n,m;
cin >> n >> m;
for (int i = 1; i<=m; i++)
{
int x,y;
cin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
if (ans.size() != (n-1)){
cout << -1;
return 0;
}
cout << 2*(n-1) << "\n";
for (int i = 0; i < ans.size(); i++)
cout << ans[i].first << " " << ans[i].second << "\n";
for (int i = ans.size()-1; i >= 0; i--)
cout << ans[i].second << " " << ans[i].first << "\n";
}