ממוצע רצפים במערך

נתון מערך חד-ממדי של מספרים שלמים arr ממוין בסדר עולה, ומספר ממשי x. יש לבדוק אם במערך קיים רצף של איברים עוקבים שהממוצע שלהם הוא x. אם קיים רק רצף כזה בדיוק, יוחזר true ויודפסו האינדקסים של הרצף. אם לא קיים רק רצף כזה, יוחזר false ויודפס שאין רצף כזה.

לדוגמה, עבור המערך הבא:

012345
238141535
  • אם x = 8, יוחזר true ויודפסו האינדקסים 2---2, ממוצע הרצף המכיל את האיברים arr[2] הוא 8.
  • אם x = 2.5, יוחזר true ויודפסו האינדקסים 0---1, ממוצע הרצף המכיל את האיברים arr[0] ו-arr[1] הוא 2.5, כיוון ש- (2 + 3)/2 = 2.5.
  • אם x = 10, יוחזר true ויודפסו האינדקסים 1---2, ממוצע הרצף המכיל את האיברים arr[1] ו-arr[2] הוא 10, כיוון ש- (3 + 8)/2 = 10.
  • אם x = 8.5, יוחזר false ויודפס שאין רצף מתאים, לא קיים רצף במערך עם ממוצע של 8.5 (שימו לב כי הממוצע של 3 ו-14 הוא 8.5).

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

אילוצים:

המערך מלא במספרים שלמים וממוין בסדר עולה.

דוגמה 1:
קלט:
arr = [2, 3, 8, 14, 15, 35],
x = 8
פלט:
2---2
true

הסבר: הממוצע של הרצף המכיל את האיברים arr[2] הוא 8.

דוגמה 2:
קלט:
arr = [2, 3, 8, 14, 15, 35],
x = 2.5
פלט:
0---1
true

הסבר: הממוצע של הרצף המכיל את האיברים arr[0] ו-arr[1] הוא 2.5.

דוגמה 3:
קלט:
arr = [2, 3, 8, 14, 15, 35],
x = 10
פלט:
1---4
true

הסבר: הממוצע של הרצף המכיל את האיברים arr[1] ו-arr[4] הוא 10.

דוגמה 4:
קלט:
arr = [2, 3, 8, 14, 15, 35],
x = 8.5
פלט:
false

הסבר: אין רצף עוקב במערך שהממוצע שלו הוא 8.5.

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

הסבר: הממוצע של הרצף המכיל את האיברים arr[2] ו-arr[5] הוא 4.5.

דוגמה 6:
קלט:
arr = [10, 20, 30, 40, 50],
x = 25
פלט:
0---3
true

הסבר: הממוצע של הרצף המכיל את האיברים arr[0] ו-arr[3] הוא 25.

דוגמה 7:
קלט:
arr = [5, 10, 15, 20, 25],
x = 12.5
פלט:
0---3
true

הסבר: הממוצע של הרצף המכיל את האיברים arr[0] ו-arr[3] הוא 12.5.

דוגמה 8:
קלט:
arr = [7, 14, 21, 28, 35],
x = 20
פלט:
false

הסבר: אין רצף עוקב במערך שהממוצע שלו הוא 20.

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

קלט:

arr = [2, 3, 8, 14, 15, 35],
x = 8

הפלט המבוקש:

2---2
true