Cod sursa(job #3147226)

Utilizator AndyGooShooterDurlea Andrei AndyGooShooter Data 24 august 2023 22:46:08
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

int N, Q, x, y, type, mid;

vector<int> BIT;
void Update(int i, int val){
    while(i <= N){
        BIT[i] += val;
        i += (i & -i);
    }
}
int Querry(int i){
    int sum = 0;
    while(i > 0){
        sum += BIT[i];
        i -= (i & -i);
    }
    return sum;
}
int Range_Querry(int i, int j){
    return Querry(j) - Querry(i - 1);
}
int main()
{
    
    fin >> N >> Q;
    BIT.resize(N + 1, 0);
    for(int i = 1; i <= N; i ++)
    {
        fin >> x;
        Update(i, x);
    }
    for(int i = 1; i <= Q; i ++)
    {
        fin >> type;
        if(type == 0){

            fin >> x >> y;
            Update(x, -y);
        }
        else {
            fin >> x >> y;
            fout << Range_Querry(x, y) << '\n';
        }

    }
    return 0;
}