Cod sursa(job #1378287)

Utilizator httpsLup Vasile https Data 6 martie 2015 11:25:21
Problema Ciclu Eulerian Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;

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

#define foor(it,v) for(__typeof(v.begin()) it=v.begin();it!=v.end();++it)
#define cout g
int n,m,i;
struct eee{int a,b;};
vector<eee> muc;
vector<vector<int> >G;
vector<bool> on;

void euler(int nod)
{
    foor(it,G[nod]) if(on[*it])
    {
        on[*it]=false;
        euler(muc[*it].a==nod ? muc[*it].b:muc[*it].a);
    }
    cout<<nod<<' ';
}

int main()
{
    f>>n>>m;
    muc.resize(m+1);
    G.resize(n+1);
    on.resize(m+1,true);

    for(i=1;i<=m;++i)
    {
        f>>muc[i].a>>muc[i].b;
        G[muc[i].a].push_back(i);
        G[muc[i].b].push_back(i);
    }

    euler(1);
    return 0;
}