Cod sursa(job #1474621)

Utilizator dimavascan94VascanDumitru dimavascan94 Data 22 august 2015 14:35:51
Problema Arbori de intervale Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#include <algorithm>

int n, m, op, i;
long arr[100005] = { 0 }, a, b;

long getMax(int start, int fin)
{
	if (start == fin)	return arr[start];
	else return(std::max(getMax(start, (start + fin) / 2), getMax((start + fin) / 2 + 1, fin)));
}

int main()
{
	freopen("arbint.in", "r", stdin);
	freopen("arbint.out", "w", stdout);
	scanf("%d%d", &n, &m);

	for (i = 0; i < n; ++i)	scanf("%ld", &arr[i]);

	for (i = 0; i < m; ++i)
	{
		scanf("%d%ld%ld", &op, &a, &b);

		if (op == 0) printf("%ld\n", getMax(a - 1, b - 1));
		else	arr[a - 1] = b ;
	}
}