Pagini recente » Cod sursa (job #1626504) | Cod sursa (job #2136929) | Cod sursa (job #1251566) | Cod sursa (job #1667090) | Cod sursa (job #2496879)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
int lst[100001], vf[100001];
int sol[500001], urm[500001], nr, tot, m;
struct ura{
int xx, yy;
bool taiat;
};
ura v[500001];
int nru=1;
void adauga(int x,int y) {
nr++;
vf[nr]=y;
urm[nr]=lst[x];
lst[x]=nr;
}
void dfs(int x) {
int p, y;
sol[tot++]=x;
for(p=lst[x];p!=0;p=urm[p]) {
y=vf[p];
if(v[y].taiat==0) {
v[y].taiat=1;
if(v[y].xx==x)
dfs(v[y].yy);
else
dfs(v[y].xx);
}
}
}
int main() {
FILE *fin, *fout;;
int n, a, b, dr, p, y, i, x;
fin=fopen("ciclueuler.in","r");
fout=fopen("ciclueuler.out","w");
fscanf(fin, "%d%d",&n,&m);
for(i=1;i<=m;i++) {
fscanf(fin, "%d%d",&a,&b);
v[nru].xx=a;
v[nru].yy=b;
v[nru++].taiat=0;
adauga(a,nru-1);
adauga(b,nru-1);
}
dfs(1);
for(i=0;i<tot-1;i++)
fprintf(fout, "%d ",sol[i]);
fclose( fin );
fclose( fout );
return 0;
}