Pagini recente » Cod sursa (job #698832) | Cod sursa (job #2275976) | Cod sursa (job #1179894) | Cod sursa (job #331276) | Cod sursa (job #970302)
Cod sursa(job #970302)
#include <fstream>
#include <vector>
using namespace std;
int n,m;
bool ap[500100];
int x[500100],y[500100];
vector<int> A[100100];
ofstream out("ciclueuler.out");
inline void euler(int nod)
{
for(vector<int>::iterator it=A[nod].begin();it!=A[nod].end();++it)
{
if(!ap[*it])
{
ap[*it]=true;
euler(x[*it]+y[*it]-nod);
return;
}
}
out<<nod<<' ';
}
int main()
{
ifstream in("ciclueuler.in");
in>>n>>m;
for(int i=1;i<=m;++i)
{
in>>x[i]>>y[i];
A[x[i]].push_back(i);
A[y[i]].push_back(i);
}
for(int i=1;i<=n;++i)
{
if(A[i].size()%2)
{
out<<"-1\n";
return 0;
}
}
euler(1);
out<<'\n';
out.close();
return 0;
}