Cod sursa(job #1639878)

Utilizator TibixbAndrei Tiberiu Tibixb Data 8 martie 2016 14:29:28
Problema Mesaj4 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<vector>
using namespace std;
vector<int> L[100005];
pair<int, int> drum[100005];
bool u[100005];
int n, m, i, x, y, nd;
void dfs(int nod)
{
    for(int i=0; i<L[nod].size(); i++)
    {
        int vecin=L[nod][i];
        if(u[vecin]==0)
        {
            u[vecin]=1;
            dfs(vecin);
            drum[++nd].first=nod;
            drum[nd].second=vecin;
        }
    }
}
ifstream in("mesaj4.in");
ofstream out("mesaj4.out");
int main()
{
    in>>n>>m;
    for(i=1; i<=m; i++)
    {
        in>>x>>y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    u[1]=1;
    dfs(1);
    if(nd!=n-1)
    {
        out<<"-1";
        return 0;
    }
    out<<2*nd<<"\n";
    for(i=1; i<=nd; i++)
        out<<drum[i].second<<" "<<drum[i].first<<"\n";
    for(i=nd; i>=1; i--)
        out<<drum[i].first<<" "<<drum[i].second<<"\n";
    return 0;
}