Мінімальний скалярний продукт
Натхнення для цієї проблеми коду гольфу від конкуренції код варення від Google . Передумова, що стоїть перед проблемою, з огляду на вхід двох векторів різної довжини, знаходить мінімально можливий скаляр. Скаляр можна знайти за такою формулою:
x1 * y1 + x2 * y2 + ... + xn * yn
Проблема, однак, полягає в тому, що множинні значення для скаляра можна знайти залежно від порядку чисел у вхідному регістрі (див. Нижче). Ваша мета - визначити мінімально можливе скалярне цілочисельне рішення, включивши вхідні числа вхідного числа до рівняння та вирішивши його. Ви можете використовувати кожне число у вводі лише один раз і повинно використовувати всі числа.
Дозвольте навести приклад із наступними векторами.
Вхідні дані
3
1 3 -5
-2 4 1
Вихідні дані
-25
Перше ціле число у рядку представляє кількість чисел, n, у кожному векторі. У цьому випадку ми маємо три числа у кожному векторі.
Число n може змінюватися залежно від кожного тесту, але завжди буде два вектори.
У прикладі прикладу мінімальний скалярний продукт буде -25.
(-5 * 4) + (1 * 1) + (3 * -2) = 25
Правила
- Ви можете використовувати кожне ціле число в обох векторах один раз.
- Ви повинні використовувати всі цілі числа у векторах.
- Вихід повинен включати лише кінцевий продукт
- Я виберу рішення з найменшою кількістю коду, яке відповідає всім переліченим вище технічним умовам, будь-якою мовою!
Підказка: Вам не потрібно жорстоко змушувати цю проблему, якщо вона не скоротить ваш код. Існує конкретний метод, що займається пошуком мінімального скануючого скаляра :).