Cod sursa(job #796781)

Utilizator wzrdwzrd tst wzrd Data 12 octombrie 2012 15:37:50
Problema Ciclu Eulerian Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <set>
#define DN 100005
using namespace std;

typedef set<int>::iterator is;

int n,m,sol[DN*5],sz;
multiset<int> gr[DN];

void euler(int s) {
    for(;gr[s].size();) {
        int n=*gr[s].begin();
        gr[s].erase(gr[s].begin());
        gr[n].erase(gr[n].find(s));
        euler(n);
    }
    sol[++sz]=s;
}

int main()
{
    ifstream f("ciclueuler.in");
	ofstream g("ciclueuler.out");
	f>>n>>m;
	for(int i=0; i<m; ++i) {
	    int a,b;
	    f>>a>>b;
	    gr[a].insert(b);
	    gr[b].insert(a);
	}
	euler(1);
	for(int i=sz; i>1; --i) g<<sol[i]<<' ';
    return 0;
}