I have no idea how to solve the following INTEGER problem or prove its hardness. Thanks for any help/comment/open discussion!
Assume there are $N$ startups. For each startup $i$, you can invest $x_i\in \{0,1,...,C_i\}$ dollars where $C_i$ is the maximal investment that it accepts, and you will get a reward as $f_i(x_i)$. The reward function $f_i(x_i)$ has the following properties for all $i$:
(1) $f_i(.)$ is non-decreasing and $f_i(0)=0$
(2) $f_i(.)$ is not necessarily "convex" or "concave"
(3) $0 \leq x\leq x'\leq C_i$, $f_i(x)x' \geq f_i(x')x$
(4) the function $g_i(x) = f_i(x+1) - f_i(x)$ is not necessarily non-decreasing or non-increasing.
Your total budget is $C$. By selecting an INTEGER vector $(x_1,...,x_N)$, you want to maximize the total rewards $\sum_{i=1}^Nf_i(x_i)$ subject to (1) $x_i\in \{0,1,...,C_i\}$ for any $i$ and (2)$\sum_{i=1}^N x_i \leq C$.