Cod sursa(job #521523)

Utilizator DaicuDaicu Alexandru Daicu Data 12 ianuarie 2011 19:17:48
Problema Arbori de intervale Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
int n,m,a;
long b,vec[100003];
void citire()
{scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
	scanf("%d",&vec[i]);
}
int arb(int i,int j,int nod)
{if(i==j)
	return vec[i];
int m=(i+j)/2;
if(arb(i,m,nod*2)>arb(m+1,j,nod*2+1))
	return arb(i,m,nod*2);
else
	return arb(m+1,j,nod*2+1);
}

int main()
{freopen("arbint.in","r",stdin);
freopen("arbint.out","w",stdout);
citire();
int x;
for(int i=1;i<=m;i++)
	{scanf("%d%d%d",&x,&a,&b);
		if(x==1)
			vec[a]=b;
		else
			printf("%d\n",arb(a,b,a));
	}
return 0;
}