Pontuação dos dados

Greed é um jogo com cinco dados de seis faces. Sua missão é calcular a pontuação de uma jogada de acordo com estas regras:

 Três dados com 1 => 1000 pontos
 Três dados com 6 =>  600 pontos
 Três dados com 5 =>  500 pontos
 Três dados com 4 =>  400 pontos
 Três dados com 3 =>  300 pontos
 Três dados com 2 =>  200 pontos
 Um dado com 1   =>  100 pontos
 Um dado com 5   =>   50 pontos

Estes exemplos mostram como a pontuação é calculada:

 Lançamento       Pontuação
 ---------   ------------------
 5 1 3 4 1   250:  50 (pelo 5) + 2 * 100 (pelos 1)
 1 1 1 3 1   1100: 1000 (por três 1) + 100 (pelo outro 1)
 2 4 4 5 4   450:  400 (por três 4) + 50 (pelo 5)

Crie uma função que receba um array com cinco valores da jogada de dados de seis faces e retorne a pontuação dos dados final calculada.

Exemplos

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 só pode ser contabilizado uma vez em cada jogada. Por exemplo, um determinado "5" só pode ser contabilizado como parte da trinca (contribuindo com 500 pontos) ou como um único dado que vale 50 pontos, mas não das duas formas na mesma jogada.