Find all functions $f:\mathbb Z\to \mathbb Z$ such that for all surjective functions $g:\mathbb Z\to \mathbb Z$, $f+g$ is also surjective. (A function $g$ is surjective over $\mathbb Z$ if for all integers $y$, there exists an integer $x$ such that $g(x)=y$.)

[i]Proposed by Sean Li[/i]
1. **Constant Function Case:**
   - It is easy to check that a constant function \( f(x) = c \) for some integer \( c \) works. For any surjective function \( g \), \( f + g \) will be surjective because \( f + g(x) = c + g(x) \) will cover all integers as \( g \) is surjective.

2. **Non-Constant Function Case:**
   - We will prove that no non-constant function \( f \) satisfies the problem's condition. Let \( f \) be any non-constant function. We will construct a surjective function \( g: \mathbb{Z} \to \mathbb{Z} \) such that \( f + g \) is not surjective.

3. **Existence of Distinct Values:**
   - Since \( f \) is non-constant, there exist distinct \( a, b \in \mathbb{Z} \) such that \( a \neq b \) and \( a, b \in R_f \) (the range of \( f \)).

4. **Definition of Sets \( T_a \) and \( T_b \):**
   - For any \( a \in R_f \), let \( T_a = \{ x \mid f(x) = a - x \} \). Observe that any \( T_a \) and \( T_b \) are disjoint.

5. **Case 1: \( T_a \cup T_b \) is Infinite:**
   - Assume \( T_a \cup T_b \) is an infinite set. So at least one of \( T_a \) or \( T_b \) is infinite.
   - For any \( x \in T_a \cup T_b \), there are at most 2 integers \( m_x, n_x \) in \( T_a \cup T_b \) such that \( f(x) + m_x = a \) or \( b \) and \( f(x) + n_x = a \) or \( b \).
   - Construct \( g \) such that \( g(T_a \cup T_b) = T_a \cup T_b \) and \( f(x) \neq m_x, n_x \) in \( T_a \cup T_b \). This is possible since \( T_a \cup T_b \) is a countable infinite set. Also, set \( g(x) = x \) outside \( T_a \cup T_b \).
   - Observe that \( f(x) + g(x) \neq a, b \) for all \( x \in \mathbb{Z} \). But \( g \) is surjective by construction.

6. **Case 2: \( T_a \cup T_b \) is Finite and \( |T_a \cup T_b| \geq 3 \):**
   - Assume both \( T_a \) and \( T_b \) are finite and \( |T_a \cup T_b| \geq 3 \).
   - Construct \( g(x) = x \) outside \( T_a \cup T_b \) and \( g(T_a \cup T_b) = T_a \cup T_b \) so that \( g(x) + f(x) \neq a \).
   - For any \( x \in T_a \cup T_b \), there is at most one \( m_x \in T_a \cup T_b \) such that \( f(x) + m_x = a \). So for any \( x \in T_a \cup T_b \), there are at least \( |T_a \cup T_b| - 1 \geq 2 \) integers \( t_x \in T_a \cup T_b \) such that \( g(x) + t_x \neq a \).
   - Construct the graph joining this \( x \) to all these \( t_x \). From the theory of bipartite graphs, there is a perfect matching \( H \) with 2 parts \( T_a \cup T_b \) and \( T_a \cup T_b \).
   - Take \( g \) to be the function which maps \( x \) to its corresponding element with respect to \( H \). \( g \) is surjective but \( a \not\in R_{f+g} \).

7. **Case 3: \( |T_a \cup T_b| = 2 \):**
   - Assume \( |T_a \cup T_b| = 2 \). If we can find any other distinct \( m, n \in R_f \) such that \( |T_m \cup T_n| \geq 3 \), then we will start our work with this \( T_m, T_n \) and proceed like previous cases.
   - Otherwise, for all \( m \neq n \in R_f \), respective \( T_m, T_n \) are singleton sets. So \( T_m = \{ r_m \} \) and \( T_n = \{ r_n \} \). So \( f(r_m) = m - r_m \) and \( f(r_n) = n - r_n \).
   - If we can find \( m, n \in R_f \) such that \( m - r_m \neq n - r_n \), then take \( g(x) = x \) for all \( x \in \mathbb{Z} - (T_m \cup T_n) \) and \( g(r_m) = r_n \), \( g(r_n) = r_m \). Then:
     \[
     f(r_m) + g(r_m) = m - r_m + r_n \neq n, \quad f(r_n) + g(r_n) = n - r_n + r_m \neq n
     \]
     So \( n \not\in R_{f+g} \).
   - Otherwise, assume that for any distinct \( m, n \in R_f \), \( m - r_m = n - r_n \). Fix any \( m \neq n \in R_f \). Let there be \( c \neq r_m, r_n \) such that \( f(c) \neq f(r_m) \). Then take \( g(c) = r_m \), \( g(r_m) = c \), and \( g(x) = x \) for any other \( x \). Then:
     \[
     f(c) + g(c) = f(c) + r_m \neq f(r_m) + r_m = m
     \]
     \[
     f(r_m) + g(r_m) = m - r_m + c \neq m
     \]
     And \( f(x) + g(x) = f(x) + x = m \) cannot hold outside \( T_m \).
   - Finally, assume no such \( c \) exists. Then \( f(x) = f(m) \) for all \( x \neq r_m, r_n \). So at most 2 numbers are in the range of \( f \), with \( f(x) = f(m) \) for all \( x \neq r_m, r_n \) and \( f(r_m) = f(r_n) = m - r_m = n - r_n \). Then take \( g(r_m) = g(r_n) = -f(m) \) and \( g(\mathbb{Z} - \{ r_m, r_n \}) = \mathbb{Z} - \{ f(m) \} \). In this case, \( 0 \not\in R_{f+g} \).

Therefore, the only functions \( f \) that satisfy the given condition are constant functions.

The final answer is \( \boxed{ f(x) = c } \) for some integer \( c \).