Pagini recente » Cod sursa (job #928333) | Cod sursa (job #924016) | Cod sursa (job #300705) | Cod sursa (job #3214605) | Cod sursa (job #2151962)
#include <fstream>
using namespace std;
int ma[10002][10002],cicluu[2000002],ma1[10002][10002],viz[100002];
int nr,n,m,a,b,ok;
void ciclu(int nod)
{
viz[nod]=1;
for(int i=1;i<=n;i++)
{
if(ma[nod][i])
{
ma[nod][i]--;
ma[i][nod]--;
ciclu(i);
}
}
cicluu[++nr]=nod;
}
int main()
{
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
in>>n>>m;
for(int i=1;i<=m;i++)
{
in>>a>>b;
ma[a][b]++;
ma[b][a]++;
}
for(int i=1;i<=n;i++)
{
ciclu(i);
ok=1;
for(int j=1;j<=n;j++)
{
if(!viz[i])
{
ok=0;
break;
}
}
for(int j=1;j<=n;j++)
{
for(int jj=1;jj<=n;jj++)
{
if(ma[j][jj]==1)
{
ok=0;
break;
}
}
}
if(cicluu[1]==cicluu[nr]&&ok)
break;
else
{
nr=0;
for(int j=1;j<=n;j++)
{
for(int jj=1;jj<=n;jj++)
{
ma[j][jj]=ma1[j][jj];
}
viz[j]=0;
}
}
}
if(cicluu[1]!=cicluu[nr])
nr=-1;
for(int i=nr;i>1;i--)
{
out<<cicluu[i]<<" ";
}
return 0;
}