Inspirado por uma pergunta no Stack Overflow. O título aqui é inteiramente minha culpa.
O desafio
Dada uma lista de números inteiros positivos contendo pelo menos duas entradas, substitua cada número pelo mínimo de todas as entradas, excluindo a si mesma.
Casos de teste
[4 3 2 5] -> [2 2 3 2]
[4 2 2 5] -> [2 2 2 2]
[6 3 5 5 8] -> [3 5 3 3 3]
[7 1] -> [1 7]
[9 9] -> [9 9]
[9 8 9] -> [8 9 8]
Regras
O algoritmo deve teoricamente funcionar para qualquer tamanho de entrada (maior que um) e valores (números inteiros positivos). É aceito se o programa é limitado por tempo, memória ou tipos de dados e, portanto, funciona apenas para números até um determinado valor ou para tamanho de entrada até um determinado valor.
Programas ou funções são permitidos, em qualquer linguagem de programação . As brechas padrão são proibidas.
A entrada pode ser obtida por qualquer meio razoável ; e com qualquer formato. Mesmo para saída. Os formatos de entrada e saída podem ser diferentes.
O menor código em bytes vence.
[4 3 2 2 5]
a saída seria [2 2 2 2 2]
(isto é similar à segunda etapa de teste)
[4 3 2 2 5]
produzir?