$1992$ IMO Functional Equation problem The problem states:

Let $\Bbb R$ denote the set of all real numbers. Find all functions $f : \Bbb R \rightarrow \Bbb R$ such that $$f(x^{2}+f(y))=y+(f(x))^{2} \space \space \space \forall x, y \in \Bbb R.$$

My progress:
1. If we substitute $x=y=0$ in the given equation, then we get $$f(f(0))=(f(0))^{2}.$$
2. We then substitute $x=0$ in the given equation and find out that $\forall y \in \Bbb R$, $$f(f(y))=y+(f(0))^{2}.$$
3. Now, we observe that, for all $x,y \in \Bbb R$, $$y+(f(x))^{2}=f(x^{2}+f(y))=f((-x)^{2}+f(y))=y+(f(-x))^{2}.$$
Hence $\forall x \in \Bbb R,$ $$f(-x)=f(x) \space \space or \space \space f(-x)=-f(x).$$
4. But, if for some $x \in \Bbb R$, $f(-x)=f(x)$, then we would have, $$x+(f(y))^{2}=f(y^{2}+f(x))=f(y^{2}+f(-x))=-x+(f(y))^{2}$$ for any $y \in \Bbb R$ implying $x=0$. So, for any $x \neq 0$, $f(-x)=-f(x).$
5. Now if there exists any $y \neq 0$ such that $f(y) \neq 0$ then, $$y+(f(0))^{2}=f(f(y))=f(-f(-y))=-f(f(-y))=y-(f(0))^{2}$$ which implies $f(0)=0$. So, if $f(0) \neq 0$, then $f(x)=0$ whenever $x \neq 0$. But then $f(0) \neq 0$ would imply $(f(0))^{2}=f(f(0))=0$ which cannot happen and hence $f(0)=0$.
6. So summing up all that we have got so far, we see that $f$ has the following properties:   (i)$f$ is an odd function.(ii)$f(x^{2})=(f(x))^{2}.$ (iii)$f(f(x))=x.$ 
This is where I am stuck. I have observed that using the above mentioned three properties, we can write the given equation as $$f(x^{2}+f(y))=f(x^{2})+f(f(y))$$ which is almost $f(a+b)=f(a)+f(b)$, but that is of no help. Any hints would be welcome.
 A: Well, properties (i)-(iii) are a good start. 
The only other things you could need are:
(iv) $f(x)> 0$ for $x>0$.
(v) $f$ is increasing.
These are enough to completely determine the functions satisfying the given condition. More details follow below the fold.

Note that $f(x)\neq 0$ if $x\neq 0$. Indeed, if $f(x)=0$, then 
$$0=f(0)=f(f(x))=x.$$ Furthermore, if $x>0$, then $f(x)>0$. Indeed, $f(x)=f(\sqrt{x}^2)=f(\sqrt{x})^2>0$.
Then in fact, $f$ is increasing. Since $f$ is odd, it suffices to show it is increasing on $(0,\infty)$. Well, if $x>y>0$, $$f(x)-f(y)=f(\sqrt{x}^2)+f(-y)=f(\sqrt x)^2+f(-y)=f(x+f(f(-y)))=f(x-y)>0.$$
But then, if $f(x) >x$, $x>f(f(x))>x$. Likewise, if $f(x)<x$, $x=f(f(x))<f(x)<x$.
As these are impossible, we must have $f(x)=x$ for all $x$.
A: Many references, including solutions and instructional booklets, can be seen at
https://www.google.com/#q=imo+1992+functional+equation
The first search hit for MSE is this older question, which includes an answer I forgot I had written, but can be used as a long series of hints on how to solve a very similar problem.   (I found the 1992 IMO problem when looking for the source of that question, and a comment on the similarity of the two problems is what caught the attention of the search engine.) 
Functions satisfying $f\left( f(x)^2+f(y) \right)=xf(x)+y$
The comments under that question and the discussion of injectivity are particularly relevant since here the same arguments show that $f$ is injective and surjective, and the same method of piling up small observations often solves these things.  
A: This is really a comment to Sabyasachi's answer (update: now deleted), but I am posting it as an answer, because it is too long for a comment.
Sabyasachi claims that if $f(f(x)) = x$ for all $x$ (so that the graph of $f$ is symmetrical about the line $y=x$), and if $f$ is odd, then either $f(x)=x$ for all $x$ or $f(x)=-x$ for all $x$.
This is not the case, as the following counterexample shows:
\begin{align}
f(0) &= 0 \\
\\
\textrm{If } x > 0: f(x) &= x+1 \textrm{ if } \lfloor x \rfloor \textrm{ is odd} \\
&= x-1 \textrm{ if } \lfloor x \rfloor \textrm{ is even}\\
\\
\textrm{If } x < 0: f(x) &= -f(-x)
\end{align}
The graph looks like lane markings on a highway (the highway $y=x$).
