Pagini recente » Cod sursa (job #218801) | Cod sursa (job #2047041) | Cod sursa (job #1079525) | Cod sursa (job #1818044) | Cod sursa (job #2146773)
#include <fstream>
using namespace std;
int ma[1002][1002],cicluu[20002],ma1[1002][1002],viz[1002];
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]=0;
ciclu(i);
}
}
cicluu[++nr]=nod;
}
int main()
{
ifstream in("euler.in");
ofstream out("euler.out");
in>>n>>m;
for(int i=1;i<=m;i++)
{
in>>a>>b;
ma[a][b]=ma[b][a]=1;
ma1[a][b]=ma1[b][a]=1;
}
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;
}