Pagini recente » Cod sursa (job #442104) | Cod sursa (job #1091090) | Cod sursa (job #1803809) | Cod sursa (job #2031153) | Cod sursa (job #1474620)
#include <stdio.h>
#include <algorithm>
int n, m, op, i;
long arr[100005] = { 0 }, a, b;
long getMax(int start, int fin)
{
if (start == fin) return arr[start];
else return(std::max(getMax(start, (start + fin) / 2), getMax((start + fin) / 2 + 1, fin)));
}
int main()
{
//freopen("arbint.in", "r", stdin);
//freopen("arbint.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i = 0; i < n; ++i) scanf("%ld", &arr[i]);
for (i = 0; i < m; ++i)
{
scanf("%d%ld%ld", &op, &a, &b);
if (op == 0) printf("%ld\n", getMax(a - 1, b - 1));
else arr[a - 1] = b ;
}
}