Cod sursa(job #981444)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 7 august 2013 09:52:12
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<cstdio>
#include<vector>
#define x first
#define y second
#define PP pair
#define dim 100005
using namespace std;
vector<int> a[dim];
PP<int, int> GOOD[dim+dim];
int n,m,nr;
int V[dim];
inline void dfs(int k)
{
    int i;
    V[k]=1;
    for(i=0;i<a[k].size();++i)
        if(!V[a[k][i]])
        {
            dfs(a[k][i]);
            GOOD[++nr].x=k; 
            GOOD[nr].y=a[k][i];
        }
}
int i,X,Y;
bool ok=1;
int main() 
{
    freopen("mesaj4.in", "r", stdin);
    freopen("mesaj4.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for(i=1;i<=m;++i)
    {
        scanf("%d %d", &X, &Y);
        a[X].push_back(Y);
        a[Y].push_back(X);
    }
    dfs(1);
    for(i=1;i<n;++i)
        if(V[i]==0)
        {
            ok=0;
            break;
        }
    if(!ok) 
        printf("-1\n");
    else
    {
        printf("%d\n", 2*(n-1));
        for(i=1;i<=nr;++i)
            printf("%d %d\n",GOOD[i].y,GOOD[i].x);
        for(i=nr;i>=1;--i)
            printf("%d %d\n",GOOD[i].x,GOOD[i].y);
    }
    return 0;
}