Pagini recente » Cod sursa (job #310139) | Cod sursa (job #1621888) | Cod sursa (job #1732587) | Cod sursa (job #2276906) | Cod sursa (job #304894)
Cod sursa(job #304894)
#include <cstdio>
#include <vector>
using namespace std;
#define maxN 100100
#define maxM 500100
int tata[maxN], viz[maxN], luat[maxM];
vector <int> G[maxN], C[maxN];
int N, M,Nr;
void df (int x) {
for (int i = 0; i < C[x].size(); ++ i) {
if (!luat[C[x][i]]) {
luat[C[x][i]] = 1;
df (G[x][i]);
}
}
printf("%d ", x);
}
int main () {
int i, j, a, b;
freopen("ciclueuler.in", "r", stdin);
freopen("ciclueuler.out", "w", stdout);
scanf("%d%d", &N, &M);
for (i = 1; i <= M; ++ i) {
scanf("%d%d", &a, &b);
G[a].push_back(b);
G[b].push_back(a);
++ Nr;
C[a].push_back(Nr);
C[b].push_back(Nr);
}
for (i = 1; i <= N; ++ i) {
if (G[i].size() & 1) {
printf("-1\n");
return 0;
}
}
df (1);
}