Pagini recente » Cod sursa (job #89821) | Cod sursa (job #1438475) | Cod sursa (job #343855) | Cod sursa (job #125403) | Cod sursa (job #2278676)
#include <iostream>
#include <fstream>
using namespace std;
int n,m,a,b,x[201][201],g[201],c[40002],c1[40002],i,o,k,kk;
void ciclu(int p, int *c, int &k)
{
k=1;
c[1]=p;
do
{
i=1;
while(!x[c[k]][i])i++;
x[c[k]][i]=x[i][c[k]]=0;
g[c[k]]--;
g[i]--;
k++;
c[k]=i;
}while(c[k]!=c[1]);
}
int main()
{
ifstream fin ("euler.in");
ofstream fout ("euler.out");
fin>>n;
while(fin>>a>>b)
{
x[a][b]=x[b][a]=1;
g[a]++;
g[b]++;
m++;
}
ciclu(1,c,kk);
while(kk+1<m)
{
i=1;
while(!g[c[i]])i++;
ciclu(c[i],c1,k);
for(o=kk;o>i;o--)c[o+k-1]=c[o];
for(o=1;o<k;o++)c[o+i]=c1[o+1];
kk+=k-1;
}
fout<<kk<<"\n";
for(o=1;o<=kk;o++)fout<<c[o]<<" ";
fout<<"\n";
return 0;
}