Pagini recente » Cod sursa (job #1287180) | Cod sursa (job #2660240) | Cod sursa (job #3198839) | Cod sursa (job #939122) | Cod sursa (job #2609877)
#include <bits/stdc++.h>
using namespace std;
const int Nmax = 100007;
int n,m,Xor[5*Nmax],ans[5*Nmax],top;
vector<int> g[Nmax];
bool viz[5*Nmax];
void dfs(int a)
{
while (!g[a].empty())
{
int i=g[a].back();
g[a].pop_back();
if (viz[i]==0)
{
viz[i]=1;
dfs(Xor[i]^a);
}
}
ans[++top]=a;
}
int main()
{
ifstream fin ("ciclueuler.in");
ofstream fout ("ciclueuler.out");
fin>>n>>m;
for (int i=1; i<=m; ++i)
{
int u, v;
fin>>u>>v;
Xor[i]=u^v;
g[u].push_back(i);
g[v].push_back(i);
}
for (int i=1; i<=n; ++i)
{
if (((int)g[i].size()%2)==1)
{
fout<<"-1\n";
return 0;
}
}
dfs(1);
for (int i=1; i<=m; ++i)
{
fout<<ans[i]<<" ";
}
return 0;
}