Cod sursa(job #2326949)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 24 ianuarie 2019 11:58:22
Problema Ciclu Eulerian Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
int r[N],n,m;
vector<pair<int,int>> a[N];
bool v[5*N];
void dfs(int i, int j){
    for(auto it:a[i]){
        if(!v[it.s]){
            v[it.s]=1;
            dfs(it.f, it.s);
        }
    }
    if(m--)
        out<<i<<" ";
}
int main(){
    int i,j,x,y;
    in>>n>>m;
    for(i=1; i<=m; ++i){
        in>>x>>y;
        a[x].push_back({y,i});
        a[y].push_back({x,i});
        ++r[x], ++r[y];
    }
    for(i=1; i<=n; ++i)
        if(r[i]%2){
            out<<-1;
            return 0;
        }
    dfs(1,0);
	return 0;
}