Fermanın hüdudlarından kənarda uzunmüddətli karyera imkanlarını nəzərə alan inək Bessie müxtəlif onlayn proqramlaşdırma saytlarında alqoritmlər öyrənməyə başlayıb.
Hələ ki onun ən sevdiyi alqoritm "bubble sort"dur. Bessienin uzunluqlu massivini sıralamaq üçün inək dilində yazdığı ilkin implementasiya belədir:
sorted = false
while (not sorted):
sorted = true
moo
for i = 0 to n-2:
if A[i+1] < A[i]:
swap A[i], A[i+1]
sorted = falseGöründüyü kimi, inək dilindəki "moo" əmri "moo" sözünü çap etməkdən başqa heç nə etmir. Təəccüblüdür ki, Bessie onu kodunun müxtəlif yerlərində işlətməkdə israrlıdır.
Kodunu bir neçə massivdə sınaqdan keçirdikdən sonra, Bessie maraqlı bir müşahidə edir: böyük elementlər massivin sonuna çox tez hərəkət etsə də, kiçik elementlərin önə doğru "qabarcıq kimi qalxması" (o, alqoritmin adını buradan aldığını güman edir) çox uzun vaxt apara bilər. Bu problemi aradan qaldırmaq üçün, Bessie kodunu elə dəyişdirir ki, əsas dövrün hər bir təkrarında massiv həm irəli, həm də geri istiqamətdə skan olunsun, beləliklə həm böyük, həm də kiçik elementlərə bir təkrarda uzun məsafələr qət etmək şansı verilsin. Onun kodu indi belə görünür:
sorted = false
while (not sorted):
sorted = true
moo
for i = 0 to n-2:
if A[i+1] < A[i]:
swap A[i], A[i+1]
for i = n-2 downto 0:
if A[i+1] < A[i]:
swap A[i], A[i+1]
for i = 0 to n-2:
if A[i+1] < A[i]:
sorted = falseVerilmiş massivə əsasən, Bessienin dəyişdirilmiş kodunun neçə dəfə "moo" çap edəcəyini tapın.
Birinci sətirdə n~(1 \le n \le 10^5) tam ədədi verilir. Növbəti sətirin hər birində massivin bir elementi — A_0, \ldots, A_{n-1} — yerləşir, bu ədədlər ilə 10^9 arasında tam ədədlərdir. Elementlər mütləq fərqli olmaya bilər.
"moo" sözünün neçə dəfə çap olunacağını bildirən bir tam ədəd çap edin.
Nümunə 1