Cod sursa(job #2734305)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 31 martie 2021 18:04:07
Problema Ciclu Eulerian Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include<vector>
#include<fstream>
#include<map>
using namespace std;

ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");

struct muchie
{
		int x,y,folosit;
}e[500005];
vector<int>c;
vector<pair<int,int>>v[100005];



void euler(int nod){
	for(auto x: v[nod]){
		if(e[x.second].folosit){
			continue;
		}
		e[x.second].folosit=1;
		euler(x.first);
	}
	c.push_back(nod);
}

int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
		cin>>e[i].x>>e[i].y;
		v[e[i].x].push_back({e[i].y,i});
		v[e[i].y].push_back({e[i].x,i});
		
	}
	euler(1);
	if(c.size()==m+1){
		c.erase(c.begin()+m);
		for(auto x: c){
			cout<<x<<" ";
		}
	}
	else{
		cout<<-1;
	}
    return 0;
}