TopCoder problem "CoinsExchange" used in SRM 351 (Division I Level One , Division II Level Two)



Problem Statement

    

Your character in an RPG game has G1 gold, S1 silver and B1 bronze coins. You need G2 gold, S2 silver and B2 bronze coins to buy a new armor. A bank in the game supports four types of exchange operations:

  1. the bank will give you 9 silver coins in exchange for 1 gold coin
  2. the bank will give you 1 gold coin in exchange for 11 silver coins
  3. the bank will give you 9 bronze coins in exchange for 1 silver coin
  4. the bank will give you 1 silver coin in exchange for 11 bronze coins
Return the minimal number of exchange operations required for your character to hold at least G2 gold, at least S2 silver and at least B2 bronze coins. Return -1 if the character does not have enough money for that.

 

Definition

    
Class:CoinsExchange
Method:countExchanges
Parameters:int, int, int, int, int, int
Returns:int
Method signature:int countExchanges(int G1, int S1, int B1, int G2, int S2, int B2)
(be sure your method is public)
    
 

Constraints

-G1, S1, B1, G2, S2 and B2 will each be between 0 and 1,000,000, inclusive.
 

Examples

0)
    
1
0
0
0
0
81
Returns: 10
Initially, you have one gold coin. You should exchange it for 9 silver coins. After that you should exchange each of the 9 silver coins for 9 bronze coins.
1)
    
1
100
12
5
53
33
Returns: 7
2)
    
1
100
12
5
63
33
Returns: -1
3)
    
5
10
12
3
7
9
Returns: 0

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=7773

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=10675&pm=7773

Writer:

Andrew_Lazarev

Testers:

PabloGilberto , brett1479 , Olexiy

Problem categories:

Simulation