Pagini recente » Cod sursa (job #2062782) | Cod sursa (job #2678243) | Cod sursa (job #1969236) | Cod sursa (job #506278) | Cod sursa (job #2243461)
#include <cstdio>
#include <stack>
#include <vector>
using namespace std;
const int MMAX = 500001,
NMAX = 100001;
int N, M;
struct muchie {
int from, to;
bool used = 0;
};
muchie V[MMAX];
stack<int> S;
vector<int> A[NMAX];
int L[MMAX+2],
K;
void euler() {
}
int main()
{
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
scanf("%i %i", &N, &M);
int x, y;
for(int i = 1; i <= M && scanf("%i %i", &x,&y); i++) {
V[i].from = x;
V[i].to = y;
A[x].push_back(i);
A[y].push_back(i);
}
S.push(1);
while(!S.empty()) {
int nd = S.top();
if(!A[nd].empty()) {
x = A[nd].back();
A[nd].pop_back();
if(!V[x].used) {
V[x].used = 1;
S.push(V[x].from^V[x].to^nd);
}
} else L[++K] = nd, S.pop();
}
for(int i = 1; i < K; i++)
printf("%i ", L[i]);
return 0;
}