Олимпиадная задача по программированию. Можете подсказать алгоритм?
Мальчик хочет продать вещь на рынке одному продавцу.
Продавец определенно примет цену p, если это не будет больше, чем определенный порог a, но за цену p выше, чем он задумал, продавец подумает. Чем выше цена, тем более низкая вероятность он примет. Точно, вероятность, что он принимает цену p> a если 1 / (1 + (p - a) b), где b>1 - положительная константа в Его модели.
Мальчик сначала предлагаете цену (неотрицательное целое число), тогда продавец решает принять ли. Еcли он принимает, торговля закончена. Еcли он не принимает, мальчик предлагаете другую цену и так далее. Мальчик знает, что продавец стал бы сердитым, если он всегда предлагаете недопустимые высокие цены, таким образом, мальчик обещал, что энное предложение (если есть) всегда не больше, чем который он может принять наверняка.
Нужно найти такое p, чтобы максимизировать окончательную цену.
n a b
вход
1 10 2
выход
10
вход
10 33 3.14
выход
34.41
Пробовал метод биссекции, но не могу додумать