Pagini recente » Cod sursa (job #1901606) | Cod sursa (job #343185) | Cod sursa (job #2832383) | Cod sursa (job #1251823) | Cod sursa (job #1836213)
#include <algorithm>
#include <fstream>
#include <vector>
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);
}
cin.close();
}
void write()
{
if (x.size()<1) cout << "-1"; else
for (int i=0; i<x.size(); i++)
cout << x[i] << ' ';
cout.close();
exit(0);
}
int i,c=0;
void eul(int v)
{
if (v==i && c!=0) write();
c++;
x.push_back(v);
int w;
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);
}
}
main()
{
read();
for (i=1; i<a.size(); i++)
if (a[i].size()!=0) {eul(i);break;}
write();
}