Cod sursa(job #3041517)

Utilizator Radu_MocanasuMocanasu Radu Radu_Mocanasu Data 31 martie 2023 16:44:52
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[50000];
int n;
void update(int poz, int val){
    for( ; poz <= n; poz += (poz & -poz)){
        aib[poz] += val;
    }
}
long long query(int poz){
    long long s = 0;
    for( ; poz > 0; poz -= (poz & -poz)){
        s += aib[poz];
    }
    return s;
}
int main()
{
    int i,j,e,k,m,p;
    fin >> n >> m;
    for(i = 1; i <= n; i++){
        fin >> e;
        update(i,e);
    }
    for(i = 1; i <= m; i++){
        fin >> k >> p >> e;
        if(k == 0){
            update(p,-e);
        }
        else{
            fout << query(e) - query(p - 1) << "\n";
        }
    }



    return 0;
}