Cod sursa(job #1301982)

Utilizator OctaDuiu Octavian Octa Data 26 decembrie 2014 15:29:29
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda tema_vacanta_iarna Marime 0.98 kb
#include<cstdio>
#include<vector>
using namespace std;
vector <int> g[100003];

struct type
{
    int x,y;
}E;

vector <type> v;

int i,n,m,k;
bool u[100003];

void dfs(int nod)
{
    u[nod]=true;
    for (int i=0;i<g[nod].size();++i)
        if (!u[g[nod][i]])
        {
            dfs(g[nod][i]);
            E.x=g[nod][i]; E.y=nod;
            v.push_back(E);
            ++k;
        }
}
int main ()
{
    freopen("mesaj4.in","r",stdin);freopen("mesaj4.out","w",stdout);

    scanf("%d %d",&n,&m);

    for (i=1;i<=m;++i)
    {
        int x,y;
        scanf("%d %d",&x,&y);
        g[x].push_back(y);
        g[y].push_back(x);
    }

    dfs(1);

    if (k!=n-1) printf("-1\n");
        else
    {
              printf("%d\n",2*n-2);

              for(i=0;i<v.size();++i)
                  printf("%d %d\n",v[i].x,v[i].y);
              for(i=v.size()-1;i>=0;--i)
                  printf("%d %d\n",v[i].y,v[i].x);
    }

    return 0;
}