Pagini recente » Cod sursa (job #197916) | Cod sursa (job #2628067) | Cod sursa (job #1126434) | Cod sursa (job #2416936) | Cod sursa (job #2942469)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
const int NMAX = 100000;
int v[NMAX+1],batog[320];
int main()
{
ifstream in("arbint.in");
ofstream out("arbint.out");
int n, m, a, b, i, cer, j;
in >> n >> m;
int x = sqrt(n);
for( i = 0; i < n ; i++ ){
in >> v[i];
batog[i / x] = max( batog[i / x] , v[i]);
}
for( i = 0 ; i < m ; i++ ){
in >> cer >> a >> b;
a--;
b--;
if( cer == 0 ){
int st = a / x , dr = b / x , maxi = 0;
for( j = a ; j < x * ( st + 1 ) ; j++ )
maxi = max(maxi , v[j]);
for( j = st + 1 ; j < dr ; j++ )
maxi = max(maxi, batog[j]);
for( j = b ; j >= x * dr; j--)
maxi = max(maxi, v[j]);
out << maxi << endl;
}
else{
int y = a / x , maxi = 0;
v[a] = b;
for( j = x * y ; j < x * ( y + 1 ); j++ )
batog[y] = max( maxi , v[j]);
}
}
return 0;
}