Pagini recente » Cod sursa (job #1363452) | Cod sursa (job #120962) | Cod sursa (job #2255977) | Cod sursa (job #2061536) | Cod sursa (job #2169687)
#include <fstream>
#include <vector>
#include <algorithm>
#define N 100003
#define oo 2000000000
#define pb push_back
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int d[N];
int n,m,x,y;
vector<int> g[N]; //nod, muchie vizitata
bool Euler()
{
for(int i=1; i<=n; ++i)
if(d[i] % 2) return false;
return true;
}
inline void S(const int &nod)
{
int nod2;
for(int i = 0; i < g[nod].size(); ++i)
{
nod2 = g[nod][i];
g[nod].erase(g[nod].begin() + i);
g[nod2].erase(find(g[nod2].begin(), g[nod2].end(),nod));
S(nod2);
fout<<nod<<" ";
}
}
int main()
{
fin>>n>>m;
while(m--)
{
fin>>x>>y;
g[x].pb(y);
g[y].pb(x);
++d[x];
++d[y];
}
if(Euler()) S(1);
else fout<<"-1\n";
return 0;
}