Cod sursa(job #1343064)

Utilizator Miruna_DMiruna Miruna_D Data 14 februarie 2015 20:40:09
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 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 timp;
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)
{
    timp++;
    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(timp<n) fout<<"-1";
    else
    {
        fout<<2*(n-1)<<"\n";


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

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