Cod sursa(job #1218678)

Utilizator azkabancont-vechi azkaban Data 12 august 2014 11:52:49
Problema Ciclu Eulerian Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");

vector <int> V[100013];
long n,i,j,valid,m,a,b;
long RG[100013];

void euler(long nod)
{
 long key;
 if (V[nod].size()>0){
                      cout<<nod<<" ";
                      key=V[nod][V[nod].size()-1];
                      V[nod].pop_back();
                      for (i=0;i<V[key].size();++i)
                         if (V[key][i]==nod) V[key].erase(V[key].begin()+i);
                      euler(key);
                      }
}
int main()
{
cin>>n>>m;
for (i=1;i<=m;++i) {
                   cin>>a>>b;
                   V[a].push_back(b);
                   V[b].push_back(a);
                   ++RG[a];
                   ++RG[b];
                   }
valid=1;
for (i=1;i<=n;++i) 
        if (RG[i]%2!=0){ 
                        cout<<"-1 \n";
                        valid=0;
                        break;
                        }
if (valid==1) euler(1);                             
return 0;
}