נתונה השגרה הבאה, המקבלת כקלט מערך A בן n איברים:

Return_What(A, n)
  m ← A[1]
  c ← 1
  i ← 2
  while i ≤ n
    if A[i] > m then
      m ← A[i]
      c ← 1
    else
      c ← c + 1
    i ← i + 1
  return c

א. מה מחזירה השגרה עבור הקלט \(A=[3,1,4,2,8,5,7]\) ו-\(n=7\)?
ב. מה מחזירה השגרה כפונקציה של הקלט? ענו במשפט מילולי קצר.
ג. נסחו שמורת לולאה מתאימה, שבאמצעותה ניתן להוכיח את טענתכם מסעיף ב'. אין צורך להוכיח את נכונות השמורה.

הבהרות:

  • האינדקס הראשון במערך A הוא 1.
  • ניתן להניח כי איברי המערך A ייחודיים (ללא חזרות).
  • בשמורת הלולאה יש להתייחס למשתנים \(c\) ו-\(i\).

עקבו אחר ערכי המשתנים \(m\) ו-\(c\) במהלך ריצת הלולאה. שימו לב מתי \(c\) מאותחל ל-1 ומתי הוא גדל. מה מייצג ערכו של \(c\) ביחס למיקום של האיבר המקסימלי שנמצא עד כה?