Pagini recente » Cod sursa (job #1362902) | Cod sursa (job #1910526) | Cod sursa (job #590387) | Cod sursa (job #1062678) | Cod sursa (job #2696709)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
int a[500003],b[500003],ok[500003],nr[100003],okt;
vector <int> v[100003];
void euler (int poz)
{
int i,m,nn;
while (v[poz].size())
{
i=v[poz].size()-1;
m=v[poz][i];
v[poz].pop_back();
if (ok[m])
continue;
ok[m]=1;
nn=(poz^a[m]^b[m]);
euler(nn);
}
if (okt)
fout<<poz<<" ";
okt=1;
}
int main ()
{
long long pp=1,n,m,i;
fin>>n>>m;
for (i=1;i<=m;i++)
{
fin>>a[i]>>b[i];
v[a[i]].push_back(i);
v[b[i]].push_back(i);
nr[a[i]]++;
nr[b[i]]++;
}
for (i=1;i<=n && pp==1;i++)
if (nr[i]%2==1)
{
fout<<"-1";
pp=0;
}
if (pp==1)
euler(1);
return 0;
}