ГЖО 7-8 класс 2019 год


Есеп D. Оңтайландыру!

Уақытка қойылған шектеу:
3 seconds
Жадқа қойылған шектеу:
512 megabytes

Ұзындығы $n$ болатын $a$ массивы берілген ($a_1, a_2, ..., a_n$). Және $q$ сұранысқа жауап беру керек. Әрбір сұраныс үшін $l, r$ ($1 <= l <= r <= n$) беріледі. Сізге сұраныстың шешімі болатын код беріледі, мұндағы $c$ сұраныстың жауабы:

int c = 0

for(int i = l...r)

  c = (c + a[i] + abs(c - a[i])) / 2

print(c).

Бұл өте баяу. Оны оңтайландыру керек!
Оқу форматы
Бірінші жолда $n$ саны бар($1 <= n <= 10^6$) - массивтың ұзындығы. Екінші жолда $n$ бүтін сандар $a_1, a_2, ...., a_n$ бар. ($1 <= |a_i| <= 10^9$). Үшінші жолда $q$ саны бар($1 <= q <= 10^6$) - сұраулар саны. Келесі $q$ жолда 2 бүтін сандар $l, r$. ($1 <= l <= r <= n$).
Жазу форматы
Әрбір сұранысқа $c$ саның табыңыз.
Мысалдар:
Оқу
10
1 6 3 88 2 9 45 78 23 6
5
1 3
4 5
6 10
5 7
2 7
Жауап
6
88
78
45
88
( Narkhan Kamzabek )
посмотреть в олимпиаде

Комментарий/решение:

  0
2019-12-19 12:19:33.0 #

FULL ACCEPTED:

кодты корсету/жасыру

пред. Правка 2   -2
2019-12-19 12:22:14.0 #

пред. Правка 2   0
2019-12-19 12:22:12.0 #

Задача решается максимумом на отрезке (Я решил деревом отрезков) за O(log n)

  2
2019-12-19 12:21:49.0 #

Zyma, еще такой коммент и будете забанены

  0
2020-04-14 20:47:34.0 #

Память позволяет написать спарс тейбл

кодты корсету/жасыру

пред. Правка 2   0
2022-01-18 11:13:45.0 #

DELETED