Pagini recente » Cod sursa (job #1843101) | Cod sursa (job #759355) | Cod sursa (job #445227) | Cod sursa (job #1150452) | Cod sursa (job #1795419)
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector <int> lista[100001];
int k, st[500001];
int n,m;
void citire()
{
int n1,n2;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&n1,&n2);
lista[n1].push_back(n2);
lista[n2].push_back(n1);
}
}
void euler(int nod)
{
int fiu;
while(lista[nod].size()!=0)
{
k++;
st[k]=nod;
fiu=lista[nod].back();
lista[nod].pop_back();
vector<int>::iterator it;
it=find(lista[fiu].begin(),lista[fiu].end(),nod);
lista[fiu].erase(it);
nod=fiu;
}
}
int main()
{
int nod;
freopen("ciclueuler.in","r",stdin);
freopen("ciclueuler.out","w",stdout);
citire();
nod=1;
int pp=1;
while(k>0||pp==1)
{
pp=0;
printf("%d ",nod);
euler(nod);
nod=st[k];
k--;
}
return 0;
}