Cod sursa(job #2615246)

Utilizator bem.andreiIceman bem.andrei Data 13 mai 2020 22:17:01
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("datorii.in");
ofstream w("datorii.out");
long long aib[15002], n, m;
void update(int a, int b){
    aib[a]+=b;
    if(a+ (a & -a)>n){
        return ;
    }
    update(a+ (a & -a), b);
}
long long querry(int a){
    if(a - (a & -a) == 0){
        return aib[a];
    }
    return aib[a]+querry(a - (a & -a));
}
int main()
{
    r>>n>>m;
    for(int i=1;i<=n;i++){
        int x;
        r>>x;
        update(i, x);
    }
    for(int i=0;i<m;i++){
        int t;
        r>>t;
        if(t==0){
            int a, b;
            r>>a>>b;
            update(a, -b);
        }
        else{
            int a, b;
            r>>a>>b;
            w<<querry(b)-querry(a-1)<<"\n";
        }
    }
    return 0;
}