Pagini recente » Cod sursa (job #2634506) | Cod sursa (job #1544534) | Cod sursa (job #2197181) | Cod sursa (job #198487) | Cod sursa (job #410175)
Cod sursa(job #410175)
#include<stdio.h>
#include<vector>
#define Nmx 500005
#define pb push_back
using namespace std;
vector<int> C[Nmx];
int grd[Nmx],n,m,nr,s[Nmx];
void citire()
{
int x,y;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
grd[x]++;
grd[y]++;
C[x].pb(y);
C[y].pb(x);
}
}
void solve()
{
for(int i=1;i<=n;++i)
if(grd[i]&1)
{
printf("-1\n");
return;
}
s[++nr]=1;
while(nr)
{
int nod=s[nr];
if(!C[nod].empty())
{
int x=C[nod].back();
C[nod].pop_back();
vector<int> :: iterator it;
for (it=C[x].begin() ; it!=C[x].end() && *it!=nod ;it++);
C[x].erase(it);
s[++nr]=x;
}
else printf("%d ",s[nr--]);
}
}
int main()
{
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
citire();
solve();
}