Problem: Let $f$ be defined and monotonic increasing on $(a,b)$. Suppose for any open $E\subset (a,b)$, $f(E)$ is open. Prove $f$ is continuous.
Attempt: Suppose $f$ is discontinuous at $x_0\in(a,b)$. Then, there exists an $\epsilon>0$ such that for all $\delta>0$, there is some $x\in (a,b)$ with $|x-x_0|<\delta$ yet $|f(x)-f(x_0)|\ge\epsilon$. Then, $f(B(x_0,\delta))$ is a neighborhood containing $f(x_0)$.
Now, my initial thought is to somehow show $f(B(x_0,\delta))$ is not open by showing there exists a neighborhood of $f(x)$ not contained in $f(B(x_0,\delta))$ by exploiting $|f(x)-f(x_0)|<\epsilon$, but I'm having quite a bit of difficulty in that.
The left and right limits $f(x_0-)$ and $f(x_0+)$ exist. If $f$ is not continuous at $x_0$ then $f(x_0-)<f(x_0+)$. Using monotonicity verify that $f(x_0+) \in (f(x_0-1), f(x_0+1))$. By hypothesis it follows that $f(x_0+)-\epsilon \in (f(x_0-1), f(x_0+1))$ for $\epsilon$ sufficiently small. But no number between $f(x_0-)$ and $f(x_0+)$ is in the range of $f$. Taking $\epsilon$ so small that $f(x_0+)-\epsilon >f(x_0-)$ we get a contradiction.