Produto Escalar Mínimo
A inspiração para esse problema do código de golfe é a competição do Google Code Jam . A premissa por trás do problema é que, dada a entrada de dois vetores de comprimentos variados, encontre o escalar mínimo possível. Um escalar pode ser encontrado usando a seguinte fórmula:
x1 * y1 + x2 * y2 + ... + xn * yn
O problema, no entanto, é que vários valores para o escalar podem ser encontrados, dependendo da ordem dos números no caso de entrada (visto abaixo). Seu objetivo é determinar a solução mínima possível de número inteiro escalar, inserindo os números dos casos de entrada na equação e resolvendo-os. Você pode usar todos os números da entrada apenas uma vez e deve usar todos os números.
Permita-me fornecer um exemplo com os seguintes vetores.
Entrada
3
1 3 -5
-2 4 1
Resultado
-25
O primeiro número inteiro na linha representa o número de números, n, em cada vetor. Nesse caso, temos três números em cada vetor.
O número n pode variar com cada caso de teste, mas sempre haverá dois vetores.
Na entrada de exemplo, o produto escalar mínimo seria -25.
(-5 * 4) + (1 * 1) + (3 * -2) = 25
Regras
- Você só pode usar cada número inteiro nos dois vetores uma vez.
- Você deve usar todos os números inteiros nos vetores.
- Sua saída deve incluir apenas o produto final
- Selecionarei a solução com a menor quantidade de código, que segue todas as especificações listadas acima, em qualquer idioma!
Dica: você não precisa fazer força bruta nesse problema, a menos que ele reduza seu código. Existe um método específico envolvido na localização do escalar de abrangência mínimo :).