Pagini recente » Arhiva de probleme | Solutii Autumn Warmup, Runda 3 | Cod sursa (job #364530) | Istoria paginii runda/22_februarie_simulare_oji_2024_clasa_9/clasament | Cod sursa (job #1868940)
#include<bits/stdc++.h>
#define in f
#define out g
using namespace std;
ifstream f ("arbint.in");
ofstream g ("arbint.out");
int const maxsize = 10000000;
int n, m, code, a, b;
int v[maxsize];
int h[100000];
int main() {
in >> n >> m;
int s = sqrt(n);
for (int i = 1; i <= n; i++) {
in >> v[i];
h[v[i] / s] = max(h[v[i] / s], v[i]);
}
for (int i = 1; i <= m; i++) {
in >> code >> a >> b;
if (code == 0) {
int maxx = 0;
for (int j = a; j <= b; j++) {
if(j % s == 0 && j + s <= b) {
maxx = max(maxx, h[j / s]);
j += (s - 1);
} else
maxx = max(maxx, v[j]);
}
out << maxx << endl;
} else {
v[a] = b;
h[a / s] = max(h[a / s], b);
}
}
return 0;
}