Cod sursa(job #2976865)

Utilizator VDAVIDVladuca david VDAVID Data 10 februarie 2023 11:39:55
Problema Arbori indexati binar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 1e5 + 1;
int aib[NMAX];
int n, m;


int lsb(int poz) {
    return poz & -poz;
}

void update(int poz, int val) {
    while(poz <= n) {
        aib[poz] += val;
        poz += lsb(poz);
    }
}

void query(int poz) {
   int sum = 0;
   while (pos > 0) {
      sum += aib[pos];
      pos -= lsb(pos);
   }
   return sum;
}

void search(int val) {
    int pas = 1 << 17,

}

int main() {
    //ifstream cin("prim.in");
    //ofstream cout("prim.out");
    cin >> n >> m;
    for(int i = 1; i <= n; i++) {
        int x;
        cin >> x;
        update(i, x);
    }

    for(int i = 1; i <= m; i++) {
        int cod;
        cin >> cod;
        if(cod == 0) {
            int a, b;
            cin >> a >> b;
            update(a, b);
        }
        else if(cod == 1) {
            int a, b;
            cin >> a >> b;
            cout << query(b) - querry(a-1);
        }
        else {
            int a;
            cin >> a;
            cout << search(a);
        }
    }
    return 0;
}