Cod sursa(job #1696882)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 30 aprilie 2016 10:21:13
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
# include <fstream>
# define DIM 17000
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[DIM],n,m,x,i,val,a,b;
void update(int a,int b){
    int i;
    for(i=a;i<=n;i+=(i&(-i)))
        v[i]+=b;
}
int sum(int p){
    int i,s=0;
    for(i=p;i>=1;i-=(i&(-i)))
        s+=v[i];
    return s;
}
int main () {
    fin>>n>>m;
    for(i=1;i<=n;i++){
        fin>>x;
        update(i,-x);
    }
    for(i=1;i<=m;i++){
        fin>>val>>a>>b;
        if(val==0)
            update(a,b);
        else
            fout<<sum(a-1)-sum(b)<<"\n";
    }
    return 0;
}