Cod sursa(job #2721525)

Utilizator mihnea03Ciocioiu Mihnea mihnea03 Data 11 martie 2021 22:02:36
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#define dim 15010
using namespace std;
int a[dim];
int i,n,m,x,t,poz,val,st,dr;

void setup (int poz, int val) {
    for (;poz<=n;poz+=poz&-poz) {
        a[poz]+=val;
    }
}

void update (int poz, int val) {
    for (;poz<=n;poz+=poz&-poz) {
        a[poz]-=val;
    }
}

int query (int poz) {
    int sol=0;
    for (int i=poz;i>=1;i-=i&-i) {
        sol+=a[i];
    }
    return sol;
}

int main() {
    ifstream fin("datorii.in");
    ofstream fout("datorii.out");
    fin>>n>>m;
    for (i=1;i<=n;i++) {
        fin>>x;
        setup(i,x);
    }
    for (;m--;) {
        fin>>t;
        if (t==0) {
            fin>>poz>>val;
            update(poz,val);
        }
        else {
            fin>>st>>dr;
            fout<<query(dr)-query(st-1)<<"\n";
        }
    }
    return 0;
}