Cod sursa(job #1609334)

Utilizator king25Ionut Vasi king25 Data 22 februarie 2016 18:56:08
Problema Mesaj4 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#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;

            dfs(V[nod][i]);
            Sol.push_back(make_pair(nod,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;
}