Задачі
Троє з Простоквашино 2
Троє з Простоквашино 2
\includegraphics{https://static.e-olymp.com/content/c0/c08bdcda603706ed03c55a2f4da4efa0800e0268.jpg}
- \textit{Матроскін, а я дерево відрізків навчився будувати.}
- \textit{Шарик, краще б ти будку нову побудував, ніж усякі дурниці.}
- \textit{Ну Матроскін, ну я вже і Дядьку Федору код показував, можеш подивитись у попередній задачі, а тобі нову функцію покажу -- внесення змін.}
\textbf{int update(int v, int left, int right, int pos, int val) \{}
\textbf{if (left == right) \{}
\textbf{t\[v\] = val;}
\textbf{return 0;}
\textbf{\}}
\textbf{int mid = (left+right) / 2;}
\textbf{if (pos <= mid)}
\textbf{update(v*2, left, mid, pos, val);}
\textbf{else}
\textbf{update(v*2+1, mid+1, right, pos, val);}
\textbf{t\[v\] = max(t\[v*2\], t\[v*2+1\]);}
\textbf{return 0;}
\textbf{\}}
- \textit{Ну ладно, Шарик, раз ти вже функцію написав, то слухай. Я тобі дам масив, який складається з }\textbf{N}\textit{ невід'ємних чисел та множину запитів одного з двох типів: якщо тип запиту дорівнює одиниці, то далі буде йти одне число }\textbf{p}\textit{, і тобі необхідно знайти таких два числа }\textbf{l}\textit{ та }\textbf{r}\textit{ (}\textbf{1 }≤ \textbf{l} ≤ \textbf{r} ≤ \textbf{N}\textit{), що функція, викликана наступним чином}
\textbf{get_max(1, 1, N, l, r)}
\textit{поверне значення рівне} \textbf{p},\textit{ якщо таких пар декілька, виведи таку, у якій мінімальне число} \textbf{l}, якщо\textit{ і таких декілька, вмведи з них ту, де мінімальне} \textbf{r}. \textit{Якщо таких пар немає, виведи рядок} "\textbf{Error}". Якщо\textit{ ж тип запиту дорівнює двом, то далі йде два числа} \textbf{x}, \textbf{y} \textit{і необхідно запустити функцію наступним чином}
\textbf{update(1, 1, N, x, y)}
\textit{Справишся з такою задачею? Можна вважати, що на самому початку була викликана функція}
\textbf{build(1, 1, N)}
\textit{з попередньої задачі.}
- \textit{Спробую, Матроскін.}
\InputFile
Перший рядок містить єдине число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^6}) -- кількість елементів у масиві. У другому рядку знаходиться \textbf{N} невід'ємних чисел, які не перевищують \textbf{10^9} -- елементи масиву. Далі йде число \textbf{M} (\textbf{1} ≤ \textbf{M }≤ \textbf{10^5}) -- кількість запитів. І потім \textbf{М} рядків, кожен з яких містить перше число -- тип запиту, а далі опис запиту, який складається з одного чи двох чисел.
\OutputFile
Для кожного запиту з типом \textbf{1} виведіть відповідь до задачі.
Вхідні дані #1
5 1 2 3 4 5 5 1 2 1 5 2 1 7 1 3 1 6
Вихідні дані #1
1 2 1 5 2 3 Error