Puntuación de los dados

Greed es un juego con cinco dados de seis caras. Tu misión es calcular la puntuación de una tirada según estas reglas:

 Tres dados con 1 => 1000 puntos
 Tres dados con 6 =>  600 puntos
 Tres dados con 5 =>  500 puntos
 Tres dados con 4 =>  400 puntos
 Tres dados con 3 =>  300 puntos
 Tres dados con 2 =>  200 puntos
 Un dado con 1   =>  100 puntos
 Un dado con 5   =>   50 puntos

Estos ejemplos muestran cómo se calcula la puntuación:

 Lanzamiento       Puntaje
 ---------   ------------------
 5 1 3 4 1   250:  50 (por el 5) + 2 * 100 (por los 1)
 1 1 1 3 1   1100: 1000 (por tres 1) + 100 (por el otro 1)
 2 4 4 5 4   450:  400 (por tres 4) + 50 (por el 5)

Crea una función que reciba un array con cinco valores de la tirada de dados de seis caras y devuelva la puntuación de los dados final calculada.

Ejemplos

Program.diceScore(new int[]{2, 3, 4, 6, 2}); // ➞ 0

Program.diceScore(new int[]{4, 4, 4, 3, 3}); // ➞ 400

Program.diceScore(new int[]{2, 4, 4, 5, 4}); // ➞ 450

Notas

Cada dado solo puede contarse una vez en cada tirada. Por ejemplo, un "5" determinado solo puede contarse como parte del trío (aportando 500 puntos) o como un solo dado que vale 50 puntos, pero no de ambas formas en la misma tirada.