Cod sursa(job #3249852)

Utilizator tudor.oancea1TOALETA SKIBIDI CEA MAI TARE tudor.oancea1 Data 18 octombrie 2024 12:14:04
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

const int N = 15000;

int bit[N+1];
int v[N+1];


ifstream cin("datorii.in");
ofstream cout("datorii.out");


void update (int i, int val){

while(i<=N){
    bit[i]+=val;
i+=i&-i;
}

}

int prefix(int i){
int sum = 0;

while(i>0){
    sum+=bit[i];
    i-=i&-i;
}
return sum;
}

int main()
{

    int n;

    cin>>n;

    int m;

    cin>>m;


    for (int i = 1; i<=n;i++){
        int x;
        cin>>x;
        v[i]=x;

        update(i,x);
    }

    for (int i = 1; i<=m;i++){

        bool op;
        cin>>op;

        int t,v;
        cin>>t>>v;

        if(op==0){
            update(t, -v);
        }
        else{
            cout<<prefix(v)-prefix(t-1)<<'\n';
        }

    }



}