Skip to main content
impol.dev

Water Bottles II

Medium

You receive two integers numBottles and numExchange .

numBottles represents the number of full water bottles that you initially have. In one operation, you can perform one of the following operations:

  • Drink any number of full water bottles turning them into empty bottles.

  • Exchange numExchange empty bottles with one full water bottle. Then, increase numExchange by one.

Note that you cannot exchange multiple batches of empty bottles for the same value of numExchange . For example, if numBottles == 3 and numExchange == 1 , you cannot exchange 3 empty water bottles for 3 full bottles.

Produce the maximum number of water bottles you can drink .

Example 1

Original illustrative diagram 1 for Water Bottles II

Input: numBottles = 13, numExchange = 6

Output: 15

Explanation: The table above shows the number of full water bottles, empty water bottles, the value of numExchange, and the number of bottles drunk.

Example 2

Original illustrative diagram 2 for Water Bottles II

Input: numBottles = 10, numExchange = 3

Output: 13

Explanation: The table above shows the number of full water bottles, empty water bottles, the value of numExchange, and the number of bottles drunk.

Constraints

  • 1 <= numBottles <= 100
  • 1 <= numExchange <= 100

Did this problem appear in one of your interviews?

Responses stay private.

Acceptance rate: 0%

© 2026 impol.dev. All rights reserved.PrivacyTerms