bool
interval_union (int a, int b, int c, int d, int & e, int & f) {
e = a; f = b;
if (c > a) {
if (c > b) {
e = c; f = d;
return false;
} else if (d > b) {
f = d;
} else {
f = b;
}
} else if ((d < a) || (d > b)) {
e = c; f = d;
return false;
} else {
e = c;
}
return true;
}