Mai intai trebuie sa te autentifici.
Cod sursa(job #1218678)
| Utilizator | 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;
}
