Pagini recente » Cod sursa (job #1949379) | Cod sursa (job #1784970) | Cod sursa (job #1744245) | Cod sursa (job #858820) | Cod sursa (job #2492800)
#include <iostream>
#include <cstdio>
using namespace std;
int q[100001], lst[100001], vf[100001];
int d[500001], urm[500001], nr;
struct ura{
int xx, yy;
bool taiat;
};
ura v[500001];
int nru;
void adauga(int x,int y) {
nr++;
vf[nr]=y;
urm[nr]=lst[x];
lst[x]=nr;
}
int main() {
FILE *fin, *fout;
int n, m, a, b, st, dr, p, y, i, x, indice;
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,b);
adauga(b,a);
}
dr=0;
q[dr]=1;
while(dr>=0) {
x=q[dr];
dr--;
fprintf(fout, "%d ",x);
for(p=lst[x];p!=0;p=urm[p]) {
y=vf[p];
for(i=0;i<nru;i++)
if((x==v[i].xx && y==v[i].yy) || (y==v[i].xx && x==v[i].yy)) {
if(v[i].taiat==0) {
v[i].taiat=1;
q[++dr]=y;
}
i=nru;
}
}
}
fclose( fin );
fclose( fout );
return 0;
}