Find all functions $f: \mathbb{R}^{+} \rightarrow \mathbb{R}^{+}$ such that 
$$ f(x+f(y))=f(x+y)+f(y) $$
for all $x, y \in \mathbb{R}^{+}$. (Symbol $\mathbb{R}^{+}$ denotes the set of all positive real numbers.) (Thailand) 
Answer. $f(x)=2x$.
First we show that \( f(y) > y \) for all \( y \in \mathbb{R}^{+} \). Functional equation (1) yields \( f(x + f(y)) > f(x + y) \) and hence \( f(y) \neq y \) immediately. If \( f(y) < y \), then \( f(x + f(y)) < f(x + y) \), which is a contradiction. Therefore \( f(y) > y \) for all \( y \in \mathbb{R}^{+} \). For \( x \in \mathbb{R}^{+} \) define \( g(x) = f(x) - x \); then \( f(x) = g(x) + x \) and, as we have seen, \( g(x) > 0 \). Transforming (1) for function \( g(x) \) and setting \( t = x + y \), 
\[ \begin{aligned} f(t + g(y)) & = f(t) + f(y) \\ g(t + g(y)) + t + g(y) & = (g(t) + t) + (g(y) + y) \end{aligned} \]
and therefore 
\[ g(t + g(y)) = g(t) + y \quad \text{for all } t > y > 0. \]
Next we prove that function \( g(x) \) is injective. Suppose that \( g(y_1) = g(y_2) \) for some numbers \( y_1, y_2 \in \mathbb{R}^{+} \). Then by (2),
\[ g(t) + y_1 = g(t + g(y_1)) = g(t + g(y_2)) = g(t) + y_2 \]
for all \( t > \max \{ y_1, y_2 \} \). Hence, \( g(y_1) = g(y_2) \) is possible only if \( y_1 = y_2 \).

Now let \( u, v \) be arbitrary positive numbers and \( t > u + v \). Applying (2) three times,
\[ g(t + g(u) + g(v)) = g(t + g(u)) + v = g(t) + u + v = g(t + g(u + v)). \]
By the injective property we conclude that \( t + g(u) + g(v) = t + g(u + v) \), hence
\[ g(u) + g(v) = g(u + v). \]
Since function \( g(v) \) is positive, equation (3) also shows that \( g \) is an increasing function.

Finally we prove that \( g(x) = x \). Combining (2) and (3), we obtain
\[ g(t) + y = g(t + g(y)) = g(t) + g(g(y)) \]
and hence
\[ g(g(y)) = y. \]
Suppose that there exists an \( x \in \mathbb{R}^{+} \) such that \( g(x) \neq x \). By the monotonicity of \( g \), if \( x > g(x) \) then \( g(x) > g(g(x)) = x \). Similarly, if \( x < g(x) \) then \( g(x) < g(g(x)) = x \), which is a contradiction. Therefore \( g(x) = x \).

Since \( g(x) = x \), we have \( f(x) = g(x) + x = 2x \). Functions of the form \( f(x) = (c + 1)x \) (where \( c > 0 \)) imply \( g(x) = cx \). So, after proving (3), it is sufficient to test functions \( f(x) = (c + 1)x \).