Pagini recente » Cod sursa (job #2166886) | Cod sursa (job #907309) | Cod sursa (job #1420690) | Cod sursa (job #2793457) | Cod sursa (job #1898687)
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
/// /g/ salutes you
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
const int nmax=100005;
vector <int> stiv;
vector <int> a[nmax];
int n,m;
void euler ()
{
int nod,vecin;
stiv.push_back(nod);
while (!stiv.empty())
{
nod=stiv.back();
if (a[nod].size())
{
vecin=a[nod].back();
a[vecin].erase(find(a[vecin].begin(),a[vecin].end(),nod));
a[nod].pop_back();
stiv.push_back(vecin);
}
else
{
g<<nod<<" ";
stiv.pop_back();
}
}
}
int main()
{
int i,x,y;
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
for (i=1;i<=n;i++)
{
if (a[i].size()%2 || a[i].size()==0)
{
g<<"-1";
return 0;
}
}
euler();
return 0;
}