מכפלה מינימלית של שלשה

בהינתן מערך arr המלא במספרים שלמים (חיוביים ושליליים, ללא אפסים).

יש למצוא שלשה של מספרים במערך (לאו דווקא סמוכים זה לזה) שהמכפלה שלהם היא המינימלית. להדפיס את שלושת המספרים האלו ולהחזיר את המכפלה המינימלית.

לדוגמה,

אם המערך arr מכיל את המספרים הבאים:

01234
-41-10-96

אזי תודפס השלשה: -10 -9 -4
ותוחזר המכפלה -10 * -9 * -4 = -360

השיטה צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום.

אילוצים:

במערך יש לפחות 3 איברים.

דוגמה 1:
קלט:
arr = [-4, 1, -10, -9, 6]
פלט:
-10 -9 -4
-360

הסבר: שלושת המספרים בעלי המכפלה המינימלית הם -4, -9, -10 והמכפלה שלהם היא -360

דוגמה 2:
קלט:
arr = [1, 2, 3, 4, 5]
פלט:
1 2 3
6

הסבר: המערך מכיל רק מספרים חיוביים, ולכן נבחר את שלושת המספרים הקטנים ביותר: 1, 2, 3 שמכפלתם היא 6

דוגמה 3:
קלט:
arr = [-1, -2, -3, -4, -5]
פלט:
-5 -4 -3
-60

הסבר: המערך מכיל רק מספרים שליליים, ולכן נבחר את המספרים -3, -4, -5 שמכפלתם היא -60

דוגמה 4:
קלט:
arr = [-10, -5, 1, 2, 3, 4, 5]
פלט:
-10 5 4
-200

הסבר: נבחר את המספרים -10, 5, 4 שמכפלתם היא -200. זוהי המכפלה המינימלית האפשרית

דוגמה 5:
קלט:
arr = [10, 5, -1, -2, -3, -4, -5]
פלט:
-5 10 5
-250

הסבר: נבחר את המספרים -5, 5, 10 שמכפלתם היא -250. זוהי המכפלה המינימלית האפשרית

דוגמה 6:
קלט:
arr = [-7, 3, 1, -9, 8, 4, -6]
פלט:
-9 -7 -6
-378

הסבר: נבחר את המספרים -6, -7, -9 שמכפלתם היא -378. זוהי המכפלה המינימלית האפשרית

דוגמה 7:
קלט:
arr = [100, 200, 300]
פלט:
100 200 300
6000000

הסבר: המערך מכיל רק 3 איברים ולכן המכפלה המינימלית היא מכפלת כל האיברים: 100 * 200 * 300 = 6,000,000

דוגמה 8:
קלט:
arr = [-100, -200, -300, 400, 500]
פלט:
-300 500 400
-60000000

הסבר: נבחר את המספרים -300, 400, 500 שמכפלתם היא -60,000,000. זוהי המכפלה הקטנה ביותר

Loading...
נשמרLn 1, Col 1

קלט:

arr = [-4, 1, -10, -9, 6]

הפלט המבוקש:

-10 -9 -4 -360