Pagini recente » Cod sursa (job #2199336) | Cod sursa (job #464391) | Cod sursa (job #1107121) | Cod sursa (job #1588509) | Cod sursa (job #2628711)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 100005
int n, m, v[NMAX];
int getMax(int left, int right) {
if(left == right) {
return v[left];
}
int mid = (left + right) / 2;
return max(getMax(left, mid), getMax(mid + 1, right));
}
void update(int elem, int pos) {
v[pos - 1] = elem;
}
int main() {
freopen("arbint.in", "r", stdin);
freopen("arbint.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = 0; i < n; i++) {
scanf("%d", &v[i]);
}
for(int i = 0; i < m; i++) {
int op, a, b;
scanf("%d%d%d", &op, &a, &b);
if(op == 0) {
printf("%d\n", getMax(a - 1, b - 1));
} else {
update(b, a);
}
}
return 0;
}