Sugerencia: $f$ debe ser monótona, por lo $(f(x)-f(y))/(x-y)$ debe ser el mismo para todos los $y \ne x$.
EDIT: Para mostrar $f$ es monótona: si $a < b < c$, $f((a,c)) = f((a,b)) \cup f((b,c)) \cup \{f(b)\}$. Ahora la longitud de $f((a,c))$ es la longitud de $(a,c)$, que es la suma de las longitudes de $(a,b)$$(b,c)$, y por lo tanto la suma de las longitudes de $f((a,b))$$f((b,c))$. La única forma en que la unión de dos intervalos abiertos (más de un punto) puede tener una longitud igual a la suma de las longitudes de los intervalos es que los intervalos son disjuntas.
Ahora si $f$ no era monotono, habrá algún tipo de $x < y < z$ tal que $f(y)$ no está entre los $f(x)$$f(z)$: $f(y) \ge \max(f(x), f(z))$ o $f(y) \le \min(f(x), f(z))$. Supongamos $f(x) \le f(z) \le f(y)$ (el resto de los casos será similar). Luego de tomar $a < x < y < b < z < c$, $f((a,b))$ y $f((b,c))$ ambos incluyen la $f(z)$, por lo que no disjuntas, la contradicción.