Pagini recente » Cod sursa (job #491382) | Cod sursa (job #402857) | Cod sursa (job #1543649) | Cod sursa (job #2703853) | Cod sursa (job #752692)
Cod sursa(job #752692)
#include <cstdio>
#include <deque>
#define pb push_back
using namespace std;
deque<int> G[100010], Q;
int nc, nr, i, k, N, M, x, y;
bool ok;
void DF(int x)
{
int i;
deque<int>::iterator it;
while (!G[x].empty())
{i = G[x].front();
G[x].pop_front();
for(it= G[i]. begin(); it!=G[i].end(); ++it)
if(*it==x) {G[i].erase(it); break;}
DF(i);
}
Q.pb(x);
}
int main(){
freopen("ciclueuler.in","r", stdin);
freopen("ciclueuler.out","w",stdout);
scanf("%d %d\n", &N, &M);
for (i=1; i<=M; ++i){
scanf("%d %d\n", &x, &y);
G[x].pb(y);
G[y].pb(x);
}
ok=true;
for(i=1; i<=N; i++)
if (G[i].size()%2) ok=false;
if (!ok) printf("-1\n");
else {
DF(1);
for(i=0; i<Q.size(); ++i) printf("%d ", Q[i]);
printf("\n");
}
return 0;
}