Cod sursa(job #3361991)

Utilizator AndreiRaresAcatrini Rares Andrei AndreiRares Data 31 iulie 2026 12:29:10
Problema Ciclu Eulerian Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

#ifdef LOCAL
#define fin cin
#define fout cout
#else
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
#endif

vector<pair<int, int>> adj[100001];
bool vizitat[500001];

void euler(int u) {
    for (auto [v,i]:adj[u]) {
		if (vizitat[i])
			continue;
		vizitat[i] = true;
		euler(v);
	}
	fout << u << ' ';
}

int main() {
	int n, m, u, v;
	fin >> n >> m;
	for (int i=1; i<=m; i++) {
		fin >> u >> v;
		adj[u].push_back({v, i});
		adj[v].push_back({u, i});
	}
	for (u=1; u<=n; u++)
		if (adj[u].size() % 2 == 1) {
			fout << -1;
			return 0;
		}
	euler(1);
}