Segundo Maior Valor

Neste exercício, deve calcular o segundo valor maximal contido numa array, ou seja o valor que se torna máximo se remover cada instância do máximo atual da array.

Como normalmente, deve obter informações em apenas uma passagem pela array. Pode assumir que o segundo maior valor "actual" existe (existe pelo menos dois valores distintos na array) e que todos os valores na array são maiores que [!python] -100000000.[/!] [!java|scala]Integer.MIN_VALUE (que é o menor inteiro representável que existe em [!thelang]).[/!]