Cod sursa(job #1825028)

Utilizator stefanmereutaStefan Mereuta stefanmereuta Data 8 decembrie 2016 17:53:43
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.34 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAX 1010

void constrArb(int nod, int st, int dr, int maxim[], int A[]) {
    int mid = (st + dr) / 2;

    if (st == dr) {
        maxim[nod] = A[st];
    }

    constrArb(2 * nod, st, mid, maxim, A);
    constrArb(2 * nod + 1, mid + 1, dr, maxim, A);

    maxim[nod] = max(maxim[2 * nod], maxim[2 * nod + 1]);
}

void update(int nod, int a, int b, int st, int dr, int maxim[], int A[]) {
    maxim[nod] = max(b, maxim[nod]);

    if (st == dr) {
        A[st] = b;
        return;
    }

    int mid = (st + dr) / 2;

    if (a > mid) {
        update(2 * nod + 1, a, b, mid + 1, dr, maxim, A);
    } else {
        update(2 * nod, a, b, st, mid, maxim, A);
    }
}

int query(int nod, int st, int dr, int a, int b, int maxim[], int A[]) {
    if (st > b || dr <= b) {
        return -2000000000;
    }
}

int main()
{
    ifstream fin("arbint.in");
    ifstream fout("arbint.out");

    int N, M, A[MAX], maxim[4 * MAX], op, a, b;

    fin >> N >> M;

    for (int i = 1; i <= N; i++) {
       fin >> A[i];
    }

    constrArb(1, 1, N, maxim, A);

    for (int i = 0; i < M; i++) {
        fin >> op >> a >> b;

        if (op == 0) {

        } else {

        }
    }

    fin.close();
    fout.close();

    return 0;
}