Cod sursa(job #2052602)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 30 octombrie 2017 20:12:17
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define DIM 15001
using namespace std;

int n,m,i,p,q,t,val,c,v[DIM],a[DIM];

ifstream fin ("datorii.in");
ofstream fout ("datorii.out");

void update (int p,int val){
    for (;p<=n;p+=(p&-p))
        a[p] += val;
}
int query (int p){
    int sol = 0;
    for (;p>=1;p-=(p&-p))
        sol += a[p];
    return sol;
}

int main (){

    fin>>n>>m;
    for (i=1;i<=n;i++){
        fin>>v[i];
        update (i,v[i]);
    }
    for (i=1;i<=m;i++){
        fin>>c;
        if (c == 0){
            fin>>t>>val;
            update (t,-val);
        }
        else{
            fin>>p>>q;
            fout<<query(q) - query (p-1)<<"\n";
        }
    }



    return 0;
}