Pagini recente » Cod sursa (job #428584) | Cod sursa (job #1546681) | Cod sursa (job #3278663) | Cod sursa (job #1161209) | Cod sursa (job #2696704)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
vector <int>v[100002],ans;
int viz[500002];
int a[500003],b[500003];
int gr[100002],ok;
void euler(int poz)
{
while (v[poz].size()!=0)
{
int muc=v[poz].back();
v[poz].pop_back();
if(viz[muc])
continue;
viz[muc]=1;
int vecin;
if(a[muc]==poz)
vecin=b[muc];
else
vecin=a[muc];
euler(vecin);
}
if(ok)
out<<poz<<" ";
ok=1;
}
int main()
{
int n,m,i;
in>>n>>m;
for(i=1;i<=m;i++)
{
in>>a[i]>>b[i];
v[a[i]].push_back(i);
v[b[i]].push_back(i);
gr[a[i]]++;
gr[b[i]]++;
}
for(i=1;i<=n;i++)
if(gr[i]%2!=0)
{
out<<"-1";
return 0;
}
euler(1);
return 0;
}