Cod sursa(job #3155220)

Utilizator David8406Marian David David8406 Data 7 octombrie 2023 18:09:07
Problema Ciclu Eulerian Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
#include <climits>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n, m, x, y;
struct vec {
	int x, ind;
};
vector<vec> v[100005];
int viz[100005];
void euler(int nod) { 
	for (auto el : v[nod]) {
		if (!viz[el.ind]) {
			viz[el.ind] = 1;
			euler(el.x);
		}
	}
	fout << nod << " ";
}
int main() {
	fin >> n >> m;
	for (int i = 1; i <= m; i++) {
		fin >> x >> y;
		v[x].push_back({ y, i });
		v[y].push_back({ x, i });
	}
	for (int i=1;i<=n;i++)
		if (v[i].size() % 2 == 1) {
			fout << -1;
			return 0;
		}
	euler(1);
}