APT Tipping Waiters

Class

public class TippingWaiters { public int possiblePayments(int bill, int cash) { // fill in code here } }

Problem Statement

In a restaurant, if you were pleased by the waiter's service, you may leave him a tip -- you pay him more than the actual value of the bill, and the waiter keeps the excess money. In some countries, not leaving a tip for the waiter is even considered impolite. During my recent holiday I was having dinner in a foreign restaurant. The pamphlet from my travel agency informed me that the proper way of tipping the waiter is the following:

Clearly, sometimes there may be multiple "correct" ways of settling the bill. I'd like to know exactly how many choices I have in a given situation. I could program it easily, but I was having a holiday... and so it's you who has to solve this task. You will be given:

Write a function that computes how many different final sums satisfy the conditions above.

Constraints

Examples

  1. 4
    
    100
    
    Returns:  0
    

    4 isn't a round sum, and 5 is too much.

  2. 23
    
    100
    
    Returns: 1
    
    

    The only correct choice is to pay 25 dollars, thus leaving a tip of 2 dollars.

  3. 23
    
    24
    
    Returns: 0
    
    
    The same bill, but I don't have enough money to leave an appropriate tip.

  4. 220
    
    239
    
    Returns: 1
    
    This time, it is appropriate to pay either 235 or 240 dollars. Sadly, I don't have enough money for the second possibility.

  5. 1234567
    
    12345678
    
    Returns: 14440
    
    A large bill, but with that much money I don't care.

  6. 
    1880000000
    
    1980000000
    
    Returns: 210527
    
  7. 171000000
    
    179999999
    
    Returns: 0