Pagini recente » Cod sursa (job #1644660) | Cod sursa (job #947599) | Cod sursa (job #2359885) | Cod sursa (job #2208672) | Cod sursa (job #1315503)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
const int NMAX = 100000;
struct mc{
int x,y;
};
mc muchie;
vector<mc> sol;
vector<int> v[NMAX + 5];
int viz[NMAX + 5],n,m,nr;
void read()
{
in>>n>>m;
int a,b;
for(int i = 1 ; i <= m ; i++){
in>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
in.close();
}
void dfs(int x)
{
viz[x] = 1;
for(int i = 0 ; i < v[x].size() ; i++){
if(!viz[v[x][i]]){
++nr;
muchie.x = x;
muchie.y = v[x][i];
sol.push_back(muchie);
dfs(v[x][i]);
}
}
}
int main()
{
read();
dfs(1);
if(nr != (n-1)){
out<<-1;
return 0;
}
out<<2*(n-1)<<"\n";
for(int i = 0 ; i < sol.size() ; i++)
out<<sol[i].x<<" "<<sol[i].y<<"\n";
for(int i = sol.size() - 1 ; i >= 0 ; i--)
out<<sol[i].x<<" "<<sol[i].y<<"\n";
return 0;
}