Pagini recente » Cod sursa (job #1941466) | Cod sursa (job #1471166) | Cod sursa (job #1958038) | Cod sursa (job #2286759) | Cod sursa (job #385942)
Cod sursa(job #385942)
#include<stdio.h>
long n,m,a[100010];
FILE*f;
void read()
{ f=fopen("arbint.in","r");
fscanf(f,"%ld%ld",&n,&m);
long i=0;
for(;i<n;++i)
fscanf(f,"%ld",&a[i]);
}
long max(long a,long b)
{
if(a>b)return a;
return b;
}
long detmax(long st,long dr)
{
if(st==dr)return a[st];
long A=detmax(st,(st+dr)/2);
long B=detmax((st+dr)/2+1,dr);
return max(A,B);
}
int main()
{
read();
long st,dr;
int c;
FILE*g=fopen("arbint.out","w");
for(;m;--m)
{
fscanf(f,"%d %ld%ld",&c,&st,&dr);
if(!c)
fprintf(g,"%ld\n",detmax(st-1,dr-1));
else a[st-1]=dr;
}
fclose(f);
fclose(g);
return 0;
}