Pagini recente » Cod sursa (job #2858376) | Cod sursa (job #2775354) | Cod sursa (job #1609109) | Cod sursa (job #1444443) | Cod sursa (job #1609341)
#include <cstdio>
#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(){
FILE *f;
f=fopen("mesaj4.in","r");
//f>>n>>m;
fscanf(f,"%d%d",&n,&m);
int x,y;
for(int i=0;i<m;i++){
//f>>x>>y;
fscanf(f,"%d%d",&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;
dfs(V[nod][i]);
Sol.push_back(make_pair(nod,V[nod][i]));
}
}
//Viz[nod]=false;
}
int main()
{
read();
dfs(1);
FILE *g;
g=fopen("mesaj4.out","w");
if(Sol.size()!=n-1){
fprintf(g,"-1");
}else{
fprintf(g,"%d\n",2*Sol.size());
//g<<2*Sol.size()<<endl;
for(int i=0;i<Sol.size();i++){
fprintf(g,"%d %d\n",Sol[i].second,Sol[i].first);
//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;
fprintf(g,"%d %d\n",Sol[i].first,Sol[i].second);
}
}
return 0;
}