Pagini recente » Cod sursa (job #1796042) | Cod sursa (job #2089192) | Cod sursa (job #1728021) | Cod sursa (job #454866) | Cod sursa (job #2868519)
#include <iostream>
#include <fstream>
#include <cassert>
#include <vector>
#include <stack>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n;
vector<int> G[500002], L;
vector<pair<int,int>> M;
vector<bool> elim;
int main()
{
int i , j,muc;
fin >> n>>muc;
while(fin >> i >> j)
{
M.push_back({i,j});
elim.push_back(false);
G[i].push_back(M.size()-1);
G[j].push_back(M.size()-1);
}
stack<int> S;
S.push(1);
while(! S.empty())
{
int k = S.top();
if(G[k].size())
{
int x = G[k].back();
G[k].pop_back();
if(! elim[x])
{
elim[x] = 1;
int p = M[x]. second;
if(p == k)
p = M[x].first;
S.push(p);
}
}
else
{
L.push_back(k);
S.pop();
}
}
L.pop_back();
for(auto k : L)
fout << k << " ";
return 0;
}