(Czech-Polish-Slovak Match 2018)(M-D) Find all $f: \mathbb{R} \rightarrow \mathbb{R}$ such that

$$
f\left(x^{2}+x y\right)=f(x) f(y)+y f(x)+x f(x+y)
$$
$x=y=0$ and we have $f(0)^{2}=f(0)$, so we have two cases:

If $f(0)=1$, then with $x=0$ we get $f(0)=f(0) f(y)+y f(0)$ and thus $f(y)=1-y$.

Otherwise, $f(0)=0$ and with $y=0$ we have $f\left(x^{2}\right)=x f(x)$ which gives the oddness of $f$ and then with $y=-x$ we have $f(x) f(-x)=x f(x)=-f(x)^{2}$ and thus for all $x, f(x)=-x$ or $f(x)=0$. Suppose there exist $x, y$ non-zero such that $f(x)=-x, f(y)=0$ then we get $f\left(x^{2}+x y\right)=-y x+x f(x+y)$. If $f(x+y)=0$ then $f\left(x^{2}+x y\right)=-x y$ which is absurd since $x, y \neq 0$. Similarly, if $f(x+y)=-x-y$ we have $f\left(x^{2}+x y\right)=-x^{2}-2 x y$ which is possible only if $x^{2}=2 x y$ and thus $x=2 y$. It is clear that if $f$ is neither zero nor equal to $-I d$ we can choose $x \neq 2 y$ and thus we get an absurdity. Therefore, $f=I d$ or $f(x)=-x$.