Cod sursa(job #1341339)

Utilizator Miruna_DMiruna Miruna_D Data 12 februarie 2015 17:21:02
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
# include <fstream>
# include <vector>
# define NMAX 100001
using namespace std;
vector <int> G[NMAX];
ifstream f ("mesaj4.in");
ofstream g ("mesaj4.out");
vector < pair <int, int> > sol;
ifstream fin("mesaj4.in");
ofstream fout("mesaj4.out");
int use[NMAX];
int time;
int n,m;
void read()
{
    int i,x,y;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
}

void DFS(int nod)
{
    time++;
    use[nod]=1;
    for(unsigned i=0;i<G[nod].size();i++)
        if(!use[G[nod][i]])
    {
        sol.push_back(make_pair(nod,G[nod][i]));
        DFS(G[nod][i]);
    }

}

void write()
{

    if(time<n) fout<<-1;
    else
    {
        fout<<2*(n-1)<<"\n";

        for(unsigned i=0;i<sol.size();i++)
            fout<<sol[i].first<<" "<<sol[i].second<<"\n";
       for(unsigned i=0;i<sol.size();i++)              //?
            fout<<sol[i].second<<" "<<sol[i].first<<"\n";
    }

}
int main()
{
    read();
    DFS(1);
    write();
    return 0;
}