Cod sursa(job #1303453)

Utilizator robertstrecheStreche Robert robertstreche Data 27 decembrie 2014 23:38:13
Problema Mesaj4 Scor 0
Compilator cpp Status done
Runda tema_vacanta_iarna Marime 0.95 kb
#include <fstream>
#include <vector>

#define lmax 100005
#define pb push_back
#define mp make_pair

using namespace std;

ifstream f("mesaj4.in");
ofstream g("mesaj4.out");

int n,m,i,nr,x,y;

bool ap[lmax];

vector <int>v[lmax];
vector <pair<int,int> >sol;
vector <int>::iterator it;

inline void df(int nod)
{
    ap[nod]=1;
    nr++;

    for (vector <int>::iterator it=v[nod].begin();it!=v[nod].end();it++)
     if (!ap[*it])
      {
          sol.pb(mp(*it,nod));
          df(*it);
      }
}

int main()
{
    f>>n>>m;

    for (i=1;i<=m;i++)
     {
         f>>x>>y;

         v[x].pb(y);
         v[y].pb(x);
     }

    df(1);

    if (nr==n)
     {
         g<<2*n-2<<'\n';

         for (i=0;i<n-1;i++)
          g<<sol[i].first<<" "<<sol[i].second<<'\n';

         for (i=n-2;i>=0;i--)
          g<<sol[i].second<<" "<<sol[i].first<<'\n';
     }
    else
     g<<-1;

  f.close();
  g.close();
}