Takahashi Unevolved

AtCoder
IDabc180_d
Time2000ms
Memory256MB
Difficulty
Iroha is into a game where you keep pets. Iroha's pet is Takahashi. Initially, Takahashi's **STR** and **EXP** are $X$ and $0$, respectively. These parameters increase in the following two kinds of training: * Go to Kakomon Gym: the STR gets multiplied by $A$, and the EXP increases by $1$. * Go to AtCoder Gym: the STR increases by $B$, and the EXP increases by $1$. Takahashi evolves when his STR becomes $Y$ or greater, but Iroha thinks that makes him less cute. Find the maximum possible EXP of Takahashi when he is trained without letting him evolve. ## Constraints * $1 \leq X < Y \leq 10^{18}$ * $2 \leq A \leq 10^9$ * $1 \leq B \leq 10^9$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $X$ $Y$ $A$ $B$ [samples]
Samples
Input #1
4 20 2 10
Output #1
2

Initially, Takahashi's STR is $4$. We can make his EXP $2$ in the following course of training:

*   First, go to Kakomon Gym, which makes his STR $8$ and his EXP $1$.
*   Then, go to AtCoder Gym, which makes his STR $18$ and his EXP $2$.

On the other hand, there is no way to train him so that his EXP becomes greater than $2$.
Input #2
1 1000000000000000000 10 1000000000
Output #2
1000000007

Watch out for overflows.
API Response (JSON)
{
  "problem": {
    "name": "Takahashi Unevolved",
    "description": {
      "content": "Iroha is into a game where you keep pets. Iroha's pet is Takahashi. Initially, Takahashi's **STR** and **EXP** are $X$ and $0$, respectively. These parameters increase in the following two kinds of tr",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc180_d"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Iroha is into a game where you keep pets.\nIroha's pet is Takahashi. Initially, Takahashi's **STR** and **EXP** are $X$ and $0$, respectively. These parameters increase in the following two kinds of tr...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments