בהינתן מערך arr המלא במספרים שלמים (חיוביים ושליליים, ללא אפסים).
יש למצוא שלשה של מספרים במערך (לאו דווקא סמוכים זה לזה) שהמכפלה שלהם היא המינימלית. להדפיס את שלושת המספרים האלו ולהחזיר את המכפלה המינימלית.
לדוגמה,
אם המערך arr מכיל את המספרים הבאים:
| 0 | 1 | 2 | 3 | 4 |
| -4 | 1 | -10 | -9 | 6 |
אזי תודפס השלשה: -10 -9 -4
ותוחזר המכפלה -10 * -9 * -4 = -360
השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.
במערך יש לפחות 3 איברים.
arr = [-4, 1, -10, -9, 6]
-10 -9 -4 -360
הסבר: שלושת המספרים בעלי המכפלה המינימלית הם -4, -9, -10 והמכפלה שלהם היא -360
arr = [1, 2, 3, 4, 5]
1 2 3 6
הסבר: המערך מכיל רק מספרים חיוביים, ולכן נבחר את שלושת המספרים הקטנים ביותר: 1, 2, 3 שמכפלתם היא 6
arr = [-1, -2, -3, -4, -5]
-5 -4 -3 -60
הסבר: המערך מכיל רק מספרים שליליים, ולכן נבחר את המספרים -3, -4, -5 שמכפלתם היא -60
arr = [-10, -5, 1, 2, 3, 4, 5]
-10 5 4 -200
הסבר: נבחר את המספרים -10, 5, 4 שמכפלתם היא -200. זוהי המכפלה המינימלית האפשרית
arr = [10, 5, -1, -2, -3, -4, -5]
-5 10 5 -250
הסבר: נבחר את המספרים -5, 5, 10 שמכפלתם היא -250. זוהי המכפלה המינימלית האפשרית
arr = [-7, 3, 1, -9, 8, 4, -6]
-9 -7 -6 -378
הסבר: נבחר את המספרים -6, -7, -9 שמכפלתם היא -378. זוהי המכפלה המינימלית האפשרית
arr = [100, 200, 300]
100 200 300 6000000
הסבר: המערך מכיל רק 3 איברים ולכן המכפלה המינימלית היא מכפלת כל האיברים: 100 * 200 * 300 = 6,000,000
arr = [-100, -200, -300, 400, 500]
-300 500 400 -60000000
הסבר: נבחר את המספרים -300, 400, 500 שמכפלתם היא -60,000,000. זוהי המכפלה הקטנה ביותר
קלט:
arr = [-4, 1, -10, -9, 6]
הפלט המבוקש:
-10 -9 -4 -360