Pagini recente » Cod sursa (job #2446246) | Cod sursa (job #2660169) | Cod sursa (job #1429636) | Cod sursa (job #56921) | Cod sursa (job #1836189)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("ciclueuler.in");
ofstream cout("ciclueuler.out");
vector <vector <int> > a;
vector <int> x;
void read()
{
int n,m;
cin >> n >> m;
a.resize(n+1);
for (int i=0,x,y; i<m; i++)
{
cin >> x >> y;
if (count(a[x].begin(),a[x].end(),y)==0) a[x].push_back(y);
}
}
void eul(int v)
{
int w;
x.push_back(v);
while (a[v].size()!=0)
{
reverse(a[v].begin(),a[v].end());
w=a[v][a[v].size()-1];
a[v].pop_back();
eul(w);
}
}
void write()
{
if (x.size()<2) cout << "-1"; else
for (int i=0; i<x.size(); i++)
cout << x[i] << ' ';
}
main()
{
read();
for (int i=1; i<a.size(); i++)
if (a[i].size()!=0) eul(i);
write();
}