Cod sursa(job #1409154)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 30 martie 2015 13:48:30
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;

ifstream fin ("date.in" );
ofstream fout("date.out");

int N, M, i, j, K, ok, k, pos, Q;
int V[DIM], Arb[DIM];

void SetUp(){
    fin >> N >> Q;
    for(i = 1; i <= N; i ++)
        fin >> V[i];
    return;
}

int MAX(int a, int b){
    if(a >= b) return a;
    if(a <= b) return b;
}

void BuildArb(int st, int dr, int pos){
    if(st == dr){
        Arb[pos] = V[st];
    }
    else{
        int mid = st + (dr - st) / 2;
        BuildArb(st, mid, pos*2);
        BuildArb(mid+1, dr, pos*2+1);
        Arb[pos] = MAX(Arb[pos*2], Arb[pos*2+1]);
    }
    return;
}

int main(){
    SetUp();
    BuildArb(1, N, 1);
    CodeExpert();
    return 0;
}