Pagini recente » Cod sursa (job #2824920) | Cod sursa (job #2743687) | Cod sursa (job #2790508) | Cod sursa (job #847265) | Cod sursa (job #2163348)
#include <iostream>
#include <fstream>
#define Nmax 205
#include <vector>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
int n,m;
int nr;
bool ok=false;
bool muchie[Nmax][Nmax];
vector<int>lista[Nmax];
vector<int>solutie;
void citire()
{
int x,y;
fin>>n;
while(fin>>x>>y)
{
m++;
lista[x].push_back(y);
lista[y].push_back(x);
}
m++;
fin.close();
}
void sterge(int nod,int vecin)
{
lista[nod].erase(lista[nod].begin()+0);
for(size_t i=0;i<lista[vecin].size();++i)
if(lista[vecin][i]==nod){
lista[vecin].erase(lista[vecin].begin()+i);
break;
}
}
void DFS(int nod)
{
while((int)lista[nod].size())
{
int vecin=lista[nod][0];
sterge(nod,vecin);
DFS(vecin);
}
solutie.push_back(nod);
}
int main()
{
citire();
fout<<m<<"\n";
DFS(1);
for(int i=(int)solutie.size()-1;i>=0;--i)
fout<<solutie[i]<<" ";
return 0;
}