Cod sursa(job #2016492)

Utilizator cipri321Marin Ciprian cipri321 Data 29 august 2017 15:29:19
Problema Ciclu Eulerian Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <set>
#include <stack>
#include <vector>
#define DIM 100001
using namespace std;
ifstream fi("ciclueuler.in");
ofstream fo("ciclueuler.out");
int n,m;
multiset<int> V[DIM];
stack<int> S;
vector<int> REZ;
int main()
{
    fi>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int a,b;
        fi>>a>>b;
        V[a].insert(b);
        V[b].insert(a);
    }
    S.push(1);
    while(!S.empty())
    {
        int v=S.top();
        if(!V[v].empty())
        {
            int to=(*V[v].begin());
            V[v].erase(V[v].begin());
            V[to].erase(V[to].find(v));
            S.push(to);
        }
        else
        {
            S.pop();
            REZ.push_back(v);
        }
    }
    for(int i=0;i<REZ.size();i++)
        fo<<REZ[i]<<" ";
    fi.close();
    fo.close();
    return 0;
}