Cod sursa(job #1926268)

Utilizator valentin50517Vozian Valentin valentin50517 Data 14 martie 2017 11:05:26
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;

int N,M,S[100100];
map<int,int> G[100100];
void add(int x,int y){G[x][y]++;G[y][x]++;}
void del(int x,int y){G[x][y]--;G[y][x]--;}

void euler(int nod){
	for(auto &it:G[nod])if(it.second){
		del(nod,it.first);
		euler(it.first);
	}
	cout << nod << ' ';
}

int main() {
    ios_base::sync_with_stdio(0);cin.tie(0);
    ifstream cin("ciclueuler.in");
    ofstream cout("ciclueuler.out");
    cin >> N >> M;
    for(int x,y;M--;){
		cin >> x >> y;
		S[x]++,S[y]++;
		add(x,y);
	}
	
	for(int i = 1;i<=N;i++) if(S[i]%2) return cout << -1,0;
	euler(1);
}