Cod sursa(job #2767658)

Utilizator LXGALXGA a LXGA Data 7 august 2021 12:00:35
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
int n, m, a, b;
vector<int> ans;
vector<pair<int,int>> g[100001];
int grad[100001], use[500001];
void dfs(int nod)
{
	for (auto i : g[nod])
	{
		if (use[i.second]) continue;
		use[i.second] = 1;
		dfs(i.first);
		ans.push_back(i.first);
	}
}
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		cin >> a >> b;
		g[a].push_back({ b, i });
		g[b].push_back({ a, i });
		grad[a]++;
		grad[b]++;
	}
	for (int i = 1; i <= n; i++)
	{
		if (grad[i] % 2)
		{
			cout << "-1\n";
			return 0;
		}
	}
	dfs(1);
	for (auto i : ans)
		cout << i << ' ';
	return 0;
}