Cod sursa(job #835249)

Utilizator radu.bRadu Brumariu radu.b Data 15 decembrie 2012 21:25:35
Problema Arbori de intervale Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<iostream>
#define MAXN 100001

long v[MAXN];
void op(int op, long v1, long v2);

std::ifstream in("arbint.in");
std::ofstream out("arbint.out");

int main(void) {

  int M,N;

  in >> N;
  in >> M;


  for(int i = 1; i <= N; i++){
    in >> v[i];
    // std::cout << "got " << v[i] << std::endl;
  }

  for(int i = 0;i < M; i++){
    int o;
    long v1, v2;
    in >> o;
    in >> v1;
    in >> v2;
    
    op(o, v1, v2);
  }
  
  return 0;
}

void op(int op, long v1, long v2) {
  if(op==0){
    long max = v[v1];
    for(int i = v1; i <= v2 ; i++) {
      if(max < v[i] ) {
	max = v[i];
      }
    }
    out << max << std::endl;
    // std::cout << "found max : " << max << std::endl;
  } else {
    v[v1] = v2;
  }
}