Cod sursa(job #1324922)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 22 ianuarie 2015 22:18:23
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("mesaj4.in");
ofstream g("mesaj4.out");
int N,M;
bool Use[100005];
vector < pair<int,int> > Sol;
vector <int> G[100005];
void Read()
{
    int i;
    f>>N>>M;
    for(int i=1;i<=M;i++)
    {
        int x,y;
        f>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
}
void DFS(int node)
{
    Use[node]=1;
    for(int i=0;i<G[node].size();i++)
    {
        int neighb=G[node][i];
        if(Use[neighb]==0)
        {

            DFS(neighb);
            Sol.push_back(make_pair(neighb,node));
        }
    }
}
int main()
{
    Read();
    DFS(1);
    if(Sol.size()!=N-1)
    {
         g<<-1<<"\n";
         return 0;
    }

    g<<2*Sol.size()<<"\n";
    for(int i=0;i<Sol.size();i++)
        g<<Sol[i].first<<" "<<Sol[i].second<<"\n";
    for(int i=Sol.size()-1;i>=0;i--)
        g<<Sol[i].second<<" "<<Sol[i].first<<"\n";
    return 0;
}