Pagini recente » Cod sursa (job #2674775) | Cod sursa (job #1488214) | Cod sursa (job #192146) | Cod sursa (job #1359152) | Cod sursa (job #1609324)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("mesaj4.in");
ofstream g("mesaj4.out");
vector<int> V[100001];
vector<bool> Viz(100001,false);
vector < pair < int,int > > Sol;
int n,m;
void read(){
f>>n>>m;
int x,y;
for(int i=0;i<m;i++){
f>>x>>y;
V[x].push_back(y);
V[y].push_back(x);
}
}
void dfs(int nod){
Viz[nod]=true;
for(int i=0;i<V[nod].size();i++){
if(!Viz[V[nod][i]]){
//V[nod].erase(V[nod].begin()+i);
// g<<nod<<" "<<V[nod][i]<<endl;
Sol.push_back(make_pair(nod,V[nod][i]));
dfs(V[nod][i]);
}
}
//Viz[nod]=false;
}
int main()
{
read();
dfs(1);
if(Sol.size()!=n-1){
g<<-1;
}else{
g<<2*Sol.size()<<endl;
for(int i=0;i<Sol.size();i++){
g<<Sol[i].second<<" "<<Sol[i].first<<endl;
}
for(int i=Sol.size()-1;i>=0;i--){
g<<Sol[i].first<<" "<<Sol[i].second<<endl;
}
}
return 0;
}