ผลิตภัณฑ์เกลาขั้นต่ำ
แรงบันดาลใจสำหรับปัญหารหัสกอล์ฟแห่งนี้อยู่ห่างจากการแข่งขันรหัสแยมของ 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
กฎระเบียบ
- คุณสามารถใช้แต่ละจำนวนเต็มในเวกเตอร์ทั้งสองครั้งเดียวเท่านั้น
- คุณต้องใช้จำนวนเต็มทั้งหมดในเวกเตอร์
- ผลลัพธ์ของคุณต้องมีเฉพาะผลิตภัณฑ์ขั้นสุดท้ายเท่านั้น
- ฉันจะเลือกวิธีการแก้ปัญหาที่มีจำนวนน้อยที่สุดของรหัสซึ่งเป็นไปตามข้อกำหนดทั้งหมดที่ระบุไว้ข้างต้นในภาษาใด ๆ !
คำแนะนำ: คุณไม่จำเป็นต้องดุร้ายกับปัญหานี้เว้นแต่ว่าจะทำให้โค้ดของคุณสั้นลง มีวิธีการเฉพาะที่เกี่ยวข้องในการค้นหาสเกลาร์สแปนขั้นต่ำ :)