Cod sursa(job #229868)

Utilizator ditiBilescu Adrian diti Data 11 decembrie 2008 22:48:12
Problema Arbori de intervale Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>  
#define dim 100003
FILE*f=fopen("arbint.in","r"),*g=fopen("arbint.out","w");  
long a[dim],i,n,m,x,y,c;  
  
long max(long x,long y)  
{
    if(x>y)
     return x;
    return y;  
}
long maxim(long a[dim],long st,long dr)
{
    if(st==dr) return a[st];
    else return max(maxim(a,st,(st+dr)/2),maxim(a,(st+dr)/2+1,dr));  
}
  
int main()  
{  
    fscanf(f,"%ld %ld",&n,&m);  
     for(i=1;i<=n;++i)  
     fscanf(f,"%ld",&a[i]);  
   
 for(i=1;i<=m;++i)  
 { fscanf(f,"%ld %ld %ld",&c,&x,&y);  
 if(c)  
   a[x]=y;  
 else  
  fprintf(g,"%ld\n",maxim(a,x,y));
  }  
return 0;  
}