Я не знаю, какой раздел лучше подойдёт - этот или games, если что переместите.
----- введение, если знаете эту игру и её механику можно пропустить -------
И так, есть такая игра - cookie clicker, её суть (если опустить несущественные для задачи аспекты - их там много, но давайте их не обсуждать тут) такова: есть некий счёт, и он автоматически растёт каждую секунду на величину cps, которая зависит от того, какой набор «построек» куплен (покупка построек делается как раз с оплатой из этого счёта). Постройки есть разных типов, для удобства представим что их всего два (постройка типа A и постройка типа B). У каждого типа постройки есть:
- цена, стартовая за первый экземпляр, и дальше каждый следующий в k=1.15 раз дороже - геометрическая прогрессия
- прибавка к cps, которая даётся при покупке очередного экземпляра: если купить 10 построек, они дадут в 10 раз больше cps чем если купить одну, то есть каждое следующее добавление одного и того же cps получается дороже
Итого, текущее состояние описывается текущим счётом, количеством построек типа A и количеством построек типа B.
---------- собственно задача ------------
Текущий счёт у нас нулевой (только что всё потратили), и имеется некоторое cps = x0. Для покупки доступны две постройки:
Первая (A), с текущей ценой за штуку y1 и дающая прибавку x1 за ту же штуку.
Вторая (B), с текущей ценой за штуку y2 и дающая прибавку x2 за ту же штуку.
Первая дешевле (y1<y2), даёт меньше cps (x1<x2) и имеет худшее отношение цена/качество (y1/x1>y2/x2). Очевидно, если захотеть купить хоть что-то, то её мы сможем купить раньше - она дешевле. Вопроса два, простой и сложный.
Первый: мы хотим купить одну штуку A и одну штуку B, покупаем как только накопим. В каком порядке их надо купить чтобы быстрее добиться цели?
Второй: мы хотим максимально быстро поднять cps до некоторой неуказанной величины. Сколько раз надо купить постройку A перед первой покупкой постройки B? (формулировка не идеальная но надеюсь понятно о чём речь)
Речь именно про аналитическое решение. В первом вопросе - неравенство, в зависимости от выполнения или невыполнения которого мы выбираем один из двух вариантов ответа. Во втором - формула, которая выразит искомое число через заданные в условии переменные (+ можно задать одно граничное условие). Просто описания алгоритмов и тем более брутфорсы в качестве итогового ответа не годятся.
Найти удовлетворяющий требованиям ответ на второй вопрос мне найти пока не удалось, думаю будет интересно и недоделанные решения посмотреть.
