Pagini recente » Cod sursa (job #384909) | Istoria paginii problema/jobs | Cod sursa (job #1694392) | Cod sursa (job #2433356) | Cod sursa (job #1716676)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100005;
vector<pair<int, int> > path;
vector<int> g[NMAX];
bool f[NMAX];
void dfs(int u) {
f[u] = true;
for(auto &i:g[u]) {
if(!f[i]) {
dfs(i);
path.push_back(make_pair(i, u));
}
}
}
int main(void) {
freopen("mesaj4.in", "r", stdin);
freopen("mesaj4.out", "w", stdout);
int n, m, a, b;
scanf("%d%d",&n,&m);
while(m--) {
scanf("%d%d",&a,&b);
g[a].push_back(b);
g[b].push_back(a);
}
dfs(1);
for(int i=1; i<=n; ++i) {
if(!f[i]) {
printf("-1\n");
return 0;
}
}
printf("%d\n",path.size()*2);
for(int i=0; i<path.size(); ++i)
printf("%d %d\n",path[i].first,path[i].second);
for(int i=path.size()-1; i>=0; --i)
printf("%d %d\n",path[i].second,path[i].first);
fclose(stdin);
fclose(stdout);
return 0;
}