Pagini recente » Cod sursa (job #1308121) | Cod sursa (job #1821494) | Cod sursa (job #1646097) | Cod sursa (job #2251452) | Cod sursa (job #595810)
Cod sursa(job #595810)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("ciclueuler.in");
ofstream out("ciclueuler.out");
const int N=100001;
int n,m,q,v[500001];
struct punct{
int b,poz;
bool viz;
};
vector <punct> a[N];
void euler(int x){
int i,y;
for(i=0;i<a[x].size();i++){
if(a[x][i].viz){
continue;
}
y=a[x][i].b;
a[x][i].viz=true;
a[y][a[x][i].poz].viz=true;
euler(y);
}
v[++q]=x;
}
int main(){
punct aux;
int i,x,y;
in>>n>>m;
for(i=1;i<=m;i++){
in>>x>>y;
if(x==y){
aux.b=y;
aux.viz=false;
aux.poz=a[y].size();
a[x].push_back(aux);
}
else{
aux.b=y;
aux.viz=false;
aux.poz=a[y].size();
a[x].push_back(aux);
aux.b=x;
aux.poz=a[x].size()-1;
a[y].push_back(aux);
}
}
euler(1);
for(i=1;i<=q;i++){
out<<v[i]<<" ";
}
return 0;
}