Cod sursa(job #2290226)
Utilizator | Valeria Izvoreanu Mogeko | Data | 26 noiembrie 2018 00:12:01 |
---|---|---|---|
Problema | Datorii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int A[20100],T[20000],n,q;
void up(int k, int x){
for(int i=k;i<=n;i+=(i&-i))
T[i]+=x;
}
int rezolva(int k){
int r=0;
for(int i=k;i>0;i-=(i&-i)){r+=T[i];
}
return r;
}
int main(){
fin>>n>>q;
for(int i=1;i<=n;i++){
fin>>A[i];
up(i, A[i]);
}
int tip,x,y;
for(int i=1;i<=q;i++){
fin>>tip>>x>>y;
if(tip==0){up(x,-y);
} else { fout<<rezolva(y)-rezolva(x)<<'\n';
}
}
}