Pagini recente » Cod sursa (job #226462) | Cod sursa (job #1280185) | Cod sursa (job #2202026) | Cod sursa (job #3339607) | Cod sursa (job #3353443)
#include <iostream>
#include <queue>
#include <fstream>
#include <map>
#include <set>
#include <cstring>
#include <stack>
#include <ctime>
#include <cstdlib>
#define N_MAX 100005
#define MOD 666013
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
int n, m;
set<int> edges[N_MAX];
vector<int> ciclu;
stack<int> nodes;
int main()
{
in >> n >> m;
int x, y;
for (int i = 1; i <= m; i++) {
in >> x >> y;
edges[x].insert(y);
edges[y].insert(x);
}
nodes.push(1);
while (!nodes.empty()) {
int nod = nodes.top();
if (edges[nod].empty()) {
ciclu.push_back(nod);
nodes.pop();
continue;
}
int vecin = *(edges[nod].begin());
edges[nod].erase(vecin);
edges[vecin].erase(nod);
nodes.push(vecin);
}
for (int s : ciclu) {
out << s << ' ';
}
return 0;
}