Pagini recente » Clasament Teme Pregatire ACM Unibuc 2014, Anul II | Cod sursa (job #2531824) | Cod sursa (job #2365943) | Cod sursa (job #2355242) | Cod sursa (job #1438538)
#include <fstream>
#include <algorithm>
#include <list>
#include <deque>
#define N 100010
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
int n,m;
list <int> v[N];
list<int>::iterator it;
deque <int> q;
int main()
{
int x,y,i,ok=1;
in>>n>>m;
for(i=1;i<=m;i++)
{
in>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
for(i=1;i<=n;i++)
if(v[i].size()%2)
{
ok=0;
break;
}
if(!ok)
{
out<<"-1\n";
return 0;
}
q.push_front(1);
while(!q.empty())
{
x=q.front();
if(v[x].size()==0)
{
out<<x<<" ";
q.pop_front();
}
else
{
y=v[x].front();
v[x].pop_front();
q.push_front(y);
for(it=v[y].begin();it!=v[y].end();it++)
{
if(*it==x)
{
v[y].erase(it);
break;
}
}
}
}
return 0;
}