Let's say we have a set of products $M$, a total of $|M|=n$ that we want to buy. However, we can only buy one product at a time, so that we need a total of $n$ time-units to buy all items.
Each product $p\in M$ has a base price $b_p$, as well as an inflation rate $r_p$.
At time unit $t$, product $p$ therefore has the price $b_p \cdot {r_p}^t $.
We can assume $b_p\in \mathbb{R}$, $r_p>1$.
I'm looking for an efficient (i.e. polytime) algorithm that returns the optimal buying order which minimizes the total price.
There's an easier variant of the problem (all $b_p=1$) which can be solved using the greedy algorithm
"Always buy the one product with the highest inflation".
Given that the base prices can be vastly different, this algorithm can't be directly transferred, but knowing that an easier version of the problem had a linear-time solution, this one probably still isn't $\mathsf{NP}$-complete.
If we view every product as a function of time $p_i(t) = b_p \cdot {r_p}^t$, the greedy algorithm above tells us, that if for $t_0$ holds $p_i(t_0) = p_j(t_0)$, then from the point once $t_0$ has passed we should always pick of $p_i, p_j$ the one with the higher inflation.
I'd be open for both hints and solutions.