Cod sursa(job #2853399)

Utilizator RamanujanNeacsu Mihnea Ramanujan Data 20 februarie 2022 11:19:47
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define MAXN 15001
using namespace std;
int a[MAXN], v[MAXN];
ifstream fin("datorii.in");
ofstream fout("datorii.out");
void update(int pos, int x, int n){
    for(int i=pos; i<=n; i+=i&(-i)){
        a[i]+=x;
    }
}
int query(int hi){
    int res=0;
    for(int i=hi; i>0; i-=i&(-i))
        res+=a[i];
    return res;
}
int main()
{
    int n, m; fin>>n>>m;
    for(int i=1; i<=n; i++){
        fin>>v[i];
        update(i, v[i], n);
    }
    for(int i=0; i<m; i++){
        int op, x, y; fin>>op>>x>>y;
        if(op==0){
            update(x, -y, n);
        }
        else{
           fout<<query(y)-query(x-1)<<"\n";
        }
    }
    return 0;
}