f(G, s, t, s, True);
bool f(G, s, t, p, g) {
if (s == t) {
return g;
}
bool r = False;
for (n : neigbors) {
if (n == p) {
continue;
}
r |= f(G, n, t, s, !g);
}
return r
} f(G, s, t, s, True);
bool f(G, s, t, p, g) {
if (s == t) {
return g;
}
bool r = False;
for (n : neigbors) {
if (n == p) {
continue;
}
r |= f(G, n, t, s, !g);
}
return r
}