Is my proof for a 2018 Putnam problem correct? Consider the following Putnam question:

Consider a smooth function $f:\Bbb{R}\to\Bbb{R}$ such that $f\geq 0$, and $f(0)=0$ and $f(1)=1$. Prove that there exists a point $x$ and a positive integer $n$ such that $f^{(n)}(x)<0$.

This is a problem from the 2018 Putnam, and only 10 students were able to solve it completely. I spent a day thinking about it, and my "proof" differs a lot from the official solutions, and is really a heuristic. Could you tell me if it is correct?
My proof: Assume that there does not exist any $x$ and $n$ such that $f^{(n)}(x)<0$. We will compare $f$ with functions of the form $x^n$ in $[0,1]$. We will prove that $f\leq x^n$ on $[0,1]$. Because $x^n\to 0$ on $[0,1)$ as $n\to\infty$, we will have proven that $f=0$ on $[0,1)$ and $f(1)=1$. Hence, $f$ cannot be smooth. 
Why is $f\leq x^n$? Let us first analyze what $f$ looks like. It is easy to see that $f(x)=0$ for $x\leq 0$. This is because as $f\geq 0$, if $f(x)>0$ for $x<0$, when $f$ will have to decrease to $0$ at $x=0$. Hence, there will be a negative derivative involved, which is a contradiction. Hence, $f(x)=0$ for $x\leq 0$, and by continuity of derivatives for smooth functions, all derivatives at $x=0$ are also $0$. 
Now consider the functions $x^n$, which are $0$ at $x=0$ and $1$ at $x=1$. These are the same endpoints for $f(x)$ in $[0,1]$. If $f(x)$ ever crosses $x^n$ in $[0,1)$, then it will have a higher $n$th derivative than $x^n$ at the point of intersection. As its $(n+1)$th derivative is also non-negative, $f$ will just keep shooting above $x^n$, and hence never "return" to $x^n$ at $x=1$. This contradicts the fact that $f(1)=1$. Hence, $f$ will always be bounded above by $x^n$ in $[0,1]$. As this is true for all $n$, $f=0$ on $[0,1)$ and $f(1)=1$. This contradicts the fact that $f$ is continuous. 
Is my proof correct?
 A: I disagree with 

If $f(x)$ ever crosses $x^n$ in $[0,1)$, then it will have a higher $n$th derivative than $x^n$ at the point of intersection.

What you are claiming is that let $a > 0$ be the first time (assuming a "first" exists) that $ f(a) = a^n$, then $ f^{(n)}a > n!$.
It is clear that the 1st derivative is higher (in order to cross), but you have very little control over the subsequent derivatives (without much further work).    
We might be able to show that this statement is true if we also use the condition that all of the derivatives leading up to $x$ are non-negative, but that's a different argument than what you have here.   

Suppose there is a function with non-negative derivatives and $f(0)=0, f(1) = 1)$.   
Claim: $f(x) \leq x^n$ at every point $x$.   
Proof: Suppose not, then let $a$ be any point where $f(a) > a^n$.   
Smaller claim: $f^{(n) } (a) \geq n!$.
Suppose not, then for any $ x \in [0, a ]$, since $f^{(n+1) } (x) \geq 0$, hence $f^{(n) } (x) \leq f^{(n) } (a) < n!$.    Integrating this $n$ times, we conclude that $ f(a) < a^n$, which is a contradiction.   
Back to proof: Then, for $ y \in [a, 1]$, we have $ f^{(n)}(y) \geq f^{(n)} (a) = n!$.
Integrating this $n$ times, we conclude that $f(1) \geq 1-a^n + f(a) > 1$, which is a contradiction.   
Corollary: Hence $f(x) = 0 $ at every point $ x \in [0,1)$.        
