Pagini recente » Cod sursa (job #1325819) | Cod sursa (job #1040597) | Cod sursa (job #424555) | Cod sursa (job #897211) | Cod sursa (job #1327929)
#include <bits/stdc++.h>
using namespace std;
ifstream in("euler.in");
ofstream out("euler.out");
vector< vector<int> > a;
vector<int> g,s;
void euler(int x)
{
while(a[x].size())
{
int k=a[x].back();
a[x].pop_back();
a[k].erase(find(a[k].begin(),a[k].end(),x));
euler(k);
}
s.push_back(x);
}
int main()
{
int n,m,x,y;
in>>n>>m;
a=vector< vector<int> >(n+1);
g=vector<int>(n+1);
for(;m;m--)
{
in>>x>>y;
a[x].push_back(y);g[x]++;
a[y].push_back(x);g[y]++;
}
for(int i=1;i<=n;i++)
{
if(g[i]%2)
{
out<<-1;
return 0;
}
}
euler(1);
for(int i=0;i<m;i++)out<<s[i]<<' ';
return 0;
}