Pagini recente » Cod sursa (job #471871) | Cod sursa (job #1434223) | Cod sursa (job #213098) | Cod sursa (job #2061824) | Cod sursa (job #755367)
Cod sursa(job #755367)
#include <cstdio>
#include <vector>
#include <list>
using namespace std;
vector <long> a[100001];
vector <long> :: iterator it;
list <long> q;
long e[500001];
int main () {
long n,m,x,y,u=-1,i;
freopen ("ciclueuler.in","r",stdin);
freopen ("ciclueuler.out","w",stdout);
scanf("%ld%ld",&n,&m);
for (i=1;i<=m;i++) {
scanf("%ld%ld",&x,&y);
a[x].push_back(y);
a[y].push_back(x);
}
q.push_front(1);
while (!q.empty()) {
x=q.back();
if (a[x].empty()==1) {
e[++u]=x;
break;
}
else {
y=a[x].back();
a[x].pop_back();
q.push_front(y);
for (it=a[y].begin();it!=a[y].end();++it)
if ((*it)==x) {
a[y].erase(it);
break;
}
}
e[++u]=x;
q.pop_back();
}
if (u!=m)
printf("-1");
else
for (i=u;i>=1;i--)
printf("%ld ",e[i]);
printf("\n");
return 0;
}