Pagini recente » Cod sursa (job #368016) | Cod sursa (job #1362772) | Cod sursa (job #3005595) | Cod sursa (job #1430690) | Cod sursa (job #752703)
Cod sursa(job #752703)
#include <fstream>
#include <vector>
#include <deque>
#define pb push_back
#define pf push_front
using namespace std;
ifstream f("ciclueuler.in");
ofstream G("ciclueuler.out");
int x,y,next,nod,n,m,i,j;
vector<int> g[100000];
vector<int>::iterator it;
deque<int> Q;
int df ()
{
Q.pb(1);
while (!Q.empty())
{
nod=Q.front();
if (g[nod].empty())
{
G<<nod<<' ';
Q.pop_front();
continue;
}
next=g[nod].back();
g[nod].pop_back();
Q.pf(next);
for (it=g[next].begin();it!=g[next].end();it++)
if (*it==nod)
{
g[next].erase(it);
break;
}
}
return 0;
}
int main ()
{
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>x>>y;
g[x].pb(y);
g[y].pb(x);
}
for (i=1;i<=n;i++)
if (g[i].size()%2)
{
G<<"-1"<<'\n';
return 0;
}
df();
return 0;
}