Pagini recente » Cod sursa (job #341814) | Cod sursa (job #432280) | Cod sursa (job #2880469) | Cod sursa (job #1251738) | Cod sursa (job #1814840)
#include <iostream>
#include <cstdio>
using namespace std;
#define DIM 20
int N, M, V[DIM], a, b, tip;
int main() {
freopen("arbint.in","r",stdin);
freopen("arbint.out","w",stdout);
scanf("%d %d\n", &N, &M);
for(int i = 0; i < N; ++i) {
scanf("%d", &V[i + N]);
}
for(int i = N - 1; i > 0; --i) {
V[i] = max(V[i << 1], V[i << 1 | 1]);
}
for(int op = 1; op <= M; ++op) {
scanf("%d %d %d\n", &tip, &a, &b);
--a;
if(tip == 0) {
int ans = 0;
for(a += N, b += N; a < b; a >>= 1, b >>= 1) {
if(a & 1) ans = max(ans, V[a++]);
if(b & 1) ans = max(ans, V[--b]);
}
printf("%d\n", ans);
}
else {
V[a += N] = b;
for(; a > 0; a >>= 1) {
V[a >> 1] = max(V[a], V[a ^ 1]);
}
}
}
return 0;
}