Pagini recente » Cod sursa (job #21021) | Cod sursa (job #374735) | Cod sursa (job #2960039) | Cod sursa (job #1662164) | Cod sursa (job #877728)
Cod sursa(job #877728)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("ciclueuler.in");
ofstream fout("ciclueuler.out");
#define NMAX 100010
#define NMAX2 5000050
vector <int> v[NMAX];
int n,m,sir[NMAX2],poz;
void fx(int nod)
{
int a,k;
while(v[nod].size())
{
k=0;
for(int i=0;i<v[nod].size();i++)
{
if(v[v[nod][i]].size())
{
k=i;
break;
}
}
a=v[nod][k];
//fout<<a<<" "<<v[nod][v[nod].size()-1]<<"\n";
v[nod][k]=v[nod][v[nod].size()-1];
v[nod].pop_back();
for(int i=0;i<v[a].size();i++)
{
if(v[a][i]==nod)
{
v[a][i]=v[a][v[a].size()-1];
v[a].pop_back();
break;
}
}
//sir[++poz]=nod;
fx(a);
}
sir[++poz]=nod;
}
void read()
{
fin>>n>>m;
int a,b;
for(int i=0;i<m;i++)
{
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
}
void tipar()
{
for(int i=1;i<poz;i++) fout<<sir[i]<<" ";
}
int main()
{
read();
fx(1);
tipar();
// fout<<endl<<v[3].size();
}