TopcoderArchiveVisit Topcoder
SRM22 Nov 2011
SRM 536

RollingDiceDivOne

Problem statement, definition, constraints, and public examples.

Problem Statement

Byteasar is playing a tabletop role-playing game with his friends. To determine the effectiveness of their heroes' actions the players use a rather unique set of dice. The i-th (0-based) die has dice[i] faces. They are numbered from 1 to dice[i] and the face number k shows k pips. When a die is cast, every face has equal probability to come out on top.

Byteasar's hero is now trying to unlock a safe containing treasure. In order to see if he succeeds, Byteasar has to guess a number M and then to roll all the dice. The safe will open if and only if M is precisely equal to the total number of pips on the topmost faces of all the dice. Obviously, the best strategy for Byteasar is to set M equal to the most probable outcome of the dice roll.

You are given the int[] dice. Return the value M such that the probability of the total number of pips being M is the highest possible. If there are multiple such values of M, return the smallest one.

Definition

Class:
RollingDiceDivOne
Method:
mostLikely
Parameters:
int[]
Returns:
long
Method signature:
long mostLikely(int[] dice)
(be sure your method is public)

Notes

  • Please note that a die can have as few as one or two faces.

Constraints

  • dice will contain between 1 and 50 elements, inclusive.
  • Each element of dice will be between 1 and 109, inclusive.

Examples

  1. {6, 6, 8}
    Returns: 11
    The probability that the total number of pips on topmost faces of the three dice will be 11 is equal to 1/9.
  2. {10}
    Returns: 1
    You should return the minimum possible answer.
  3. {2, 3, 4, 5}
    Returns: 9
  4. {1, 10, 1}
    Returns: 3
  5. {382828264, 942663792, 291832707, 887961277, 546603677, 545185615, 146267547, 6938117, 167567032, 84232402,
    700781193, 452172304, 816532384, 951089120, 448136091, 280899512, 256093435, 39595226, 631504901, 154772240}
    Returns: 4366828428
Back to all problems