Supongamos que $f$ es continua y no constante, entonces por las condiciones dadas, para cada $(a,b)$ existe un conjunto no vacío $\mathfrak M_{(a,b)}=\{M_1,M_2, ... \}$ tal que $a<M_1<M_2<...<b$ con $$f(M_k)=M=\max_{x\in [a,b]} f(x)$$
En otras palabras, $f$ alcanza su máximo dentro del conjunto $(a,b)$ exactamente $\#\mathfrak M_{(a,b)}$ veces (que pueden ser infinitas) y en cada punto dentro de ese conjunto.
A continuación, observamos que $x\in[a,M_1)\implies f(x)<f(M_1)$ ya que suponemos que $M_1$ era el punto más pequeño dentro del conjunto donde $f$ alcanza su máximo en el conjunto. Esto implica directamente que $$\max_{x\in[a,M_1]}f(x)=f(M_1)$$ pero $M_1\notin(a,M_1)$ que viola la condición de que su máximo se alcanza en el interior del conjunto.
Argumentando de forma similar para el mínimo, podemos declarar $\mathfrak m_{(a,b)}=(m_1, m_2,...)$ el conjunto de mínimos en $(a,b)$ con $a<m_1<m_2<...<b$ y $$f(m_k)=m=\min_{x\in[a,b]} f(x)$$
Otra vez: $$x\in[a,m_1)\implies f(x)>f(m_1)\implies \min_{x\in[a,m_1]}f(x)=f(m_1)$$ con $m_1\notin (a,m_1)$ violando la misma condición.
Sin embargo, tenemos que $m_1<M_1$ o $m_1>M_1$ . Supongamos que $m_1<M_1$ entonces es no garantizado que $f(y)=\max_{x\in[a,m_1]}f(x)\implies y\notin(a,m_1)$ que satisfaría la condición de ese rango. Podemos argumentar de forma similar para $m_1>M_1$ .
Por lo tanto, debemos combinar los dos: notar en el caso de $m_1<M_1$ que $$x\in(m_1, M_1)\implies m_1<f(x)<M_1\implies\min_{x\in[m_1,M_1]}f(x)=f(m_1), \max_{x\in[m_1,M_1]} f(x)=f(M_1)$$ ninguno de los cuales está en el conjunto $(m_1,M_1)$ . y argumentando de forma similar para $m_1>M_1$