### PROBLEM LINK:

**Author:** Hasan Jaddouh

**Primary Tester:** Misha Chorniy

**Editorialist:** Hussain Kara Fallah

### DIFFICULTY:

Easy

### PREREQUISITES:

Simple Math

### PROBLEM:

We have a calculator with 2 screens and 2 buttons. Each screen shows number zero initially. Pressing the first button increments the number on the first screen by **1**, and each press of this button consumes **1** unit of energy. Pressing the second button increases the number on the second screen by the number appearing on the first screen. Each click of this button consumes **B** units of energy. Given **B,N** what’s the maximum possible number that may show on the second screen without consuming more than **N** units of energy?

### EXPLANATION:

First of all, it’s obvious that it’s not optimal to press the first button after pressing the second. We must press the first button for number of times, after that we should spend the remaining energy on pressing the second button.

Let’s define a function **f(x)** where **f(x)** represents the maximum number displayed on the second screen if we pressed the second button exactly **x** times.

f(x) = (N-x*B) * x

f(x) = -x^2 * B + Nx

We can notice that the graph of this function is a parabola. Our best answer would be

f(k) = h

where the point **(k,h)** is the vertex of the parabola. It’s well known that

k = \frac{-b}{2a}

for any parabola following the form f(x) = ax^2 + bx + c

So here : k = \frac{N}{2*B}

We can also deduce that from the derivative and find the local extrema of the function.

Since we can press the second button only integer number of presses so we must try,

k1 = \lfloor \frac{N}{2*B}\rfloor **AND** k2 = \lceil \frac{N}{2*B}\rceil and pick the better choice.

Ternary search is another possible solution for this problem.

### AUTHOR’S AND TESTER’S SOLUTIONS:

**AUTHOR’s solution**: Will be found here

**TESTER’s solution**: Will be found here

**EDITORIALIST’s solution**: Will be found here