Pagini recente » Cod sursa (job #773894) | Cod sursa (job #577357) | Cod sursa (job #795603) | Cod sursa (job #445649) | Cod sursa (job #2302636)
#include <cmath>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <list>
#include <time.h>
#include <math.h>
#include <random>
#include <deque>
#include <queue>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <bitset>
#include <sstream>
#include <chrono>
#include <cstdio>
using namespace std;
const int N = 100000 + 5;
const int M = 500000 + 5;
int n, m;
int x[M], y[M];
bool seen[M];
vector <int> id[N];
vector <int> way;
void dfs(int nod)
{
while (!id[nod].empty())
{
int i = id[nod].back();
id[nod].pop_back();
if (seen[i] == 0)
{
seen[i] = 1;
dfs(x[i] + y[i] - nod);
}
}
way.push_back(nod);
}
int main()
{
freopen ("ciclueuler.in", "r", stdin);
freopen ("ciclueuler.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
cin >> x[i] >> y[i];
id[x[i]].push_back(i);
id[y[i]].push_back(i);
}
dfs(1);
way.pop_back();
for (auto &x : way)
{
cout << x << " ";
}
cout << "\n";
}