Cod sursa(job #1315505)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 12 ianuarie 2015 21:07:59
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#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]]){
            dfs(v[x][i]);
            ++nr;
            muchie.x = v[x][i];
            muchie.y = x;
            sol.push_back(muchie);
        }
    }
}

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;
}