Pagini recente » Cod sursa (job #875602) | Cod sursa (job #417982) | Cod sursa (job #2613124) | Cod sursa (job #740002) | Cod sursa (job #1141922)
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n,m,x,y,op,v[15010],i,p;
int lsb (int i) {
return i&(-i);
}
void update (int poz, int x) {
for (int i=poz;i<=p;i+=lsb(i))
v[i]+=x;
}
long long query (int poz) {
long long sum=0;
for (int i=poz;i>=1;i-=lsb(i))
sum+=v[i];
return sum;
}
int main () {
fin>>n>>m;
p=1;
while (p<=n)
p*=2;
for (i=1;i<=n;i++) {
fin>>x;
update (i,x);
}
n=p;
while (m--) {
fin>>op>>x>>y;
if (op==0) {
update(x,-y);
}
else
fout<<query(y)-query(x-1)<<"\n";
}
return 0;
}