n=int(input());a=list(map(int,input().split()));m=int(input())
for _ in range(m):
c=input().split()
if c[0]=='get':print(a[int(c[1])-1])
elif c[0]=='update':
l,r,x=map(int,c[1:]);[a.__setitem__(i,x) for i in range(l-1,r)]
elif c[0]=='add':
l,r,x=map(int,c[1:]);[a.__setitem__(i,a[i]+x) for i in range(l-1,r)]
elif c[0]=='rsq':
l,r=map(int,c[1:]);print(sum(a[l-1:r]))
elif c[0]=='rmq':
l,r=map(int,c[1:]);print(min(a[l-1:r]))
Сама задача:
Задан массив a[1..n] из n неотрицательных целых чисел. Необходимо реализовать следующие операции над ним:
get(i) – извлечение элемента с номером i;
update(l,r,x) – присвоение значения x всем элементам подмассива a[l..r];
add(l,r,x) – увеличение всех элементов a[l..r] на x;
rsq(l,r) – вычисление суммы всех элементов a[l..r], т.е. значения a[l]+a[l+1]+…+a[r];
rmq(l,r) – вычисление минимального элемента среди всех значений a[l..r].
Входные данные
Первая строка входного файла INPUT.TXT содержит число n – размер массива. Во второй строке записаны n целых неотрицательных чисел – элементы массива. Третья строка содержит натуральное число m – количество запросов. Следующие m строк содержат запросы в формате, представленном в примере. Все числа во входных данных не превосходят 1000.
Выходные данные
В выходной файл OUTPUT.TXT для запросов get, rsq и rmq выведите результат в отдельной строке в порядке их следования.
Помогите, буду очень благодарен