Cod sursa(job #604676)
#include<fstream>
using namespace std;
short a[100003][100003],x,y,i,n,m,ind=1,s[100003],vf=1,k,j;
void un_ciclu(int ind)
{
for(k=1;k<=n;k++)
if(a[s[ind]][k])
{
a[s[ind]][k]--;a[k][s[ind]]--;
for(j=++vf;j>ind;j--) s[j]=s[j-1];
s[++ind]=k;
un_ciclu(ind);
}
}
int main()
{
ifstream f("ciclueuler.in");ofstream g("ciclueuler.out");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]++;a[y][x]++;
}
s[1]=1;
for(i=1;s[i];i++)
un_ciclu(i);
for(i=1;i<vf;i++)
g<<s[i]<<" ";
f.close();g.close();
return 0;}