Pagini recente » Cod sursa (job #76866) | Arhiva de probleme | Cod sursa (job #2424760) | Cod sursa (job #206435) | Cod sursa (job #2410230)
#include <bits/stdc++.h>
#define ff first
#define ss second
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
const string file = "ciclueuler";
const ll INF = 9223372036854775807ll;
const int inf = 2147483647, nmax = 100005;
int n, m;
vector<int> v[nmax], sol;
bool ok[nmax];
pi e[nmax];
void dfs(int x)
{
for (int i = v[x].size()-1; i >= 0; --i)
if(!ok[v[x][i]]){
ok[v[x][i]] = 1;
int y = e[v[x][i]].ff;
if(y == x)
y = e[v[x][i]].ss;
dfs(y);
}
sol.push_back(x);
}
int main()
{
ifstream fin (file+".in");
ofstream fout (file+".out");
fin >> n >> m;
for (int i = 1; i <= m; ++i){
int x, y;
fin >> x >> y;
e[i] = {x, y};
v[x].push_back(i);
v[y].push_back(i);
}
dfs(1);
sol.pop_back();
for (auto x : sol)
fout << x << " ";
return 0;
}