Pagini recente » Cod sursa (job #935640) | Cod sursa (job #427924) | Cod sursa (job #871224) | Cod sursa (job #2452084) | Cod sursa (job #3256403)
#include <bits/stdc++.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int aib[1001],v[1001];
int n,m,op,c1,c2;
void adun(int x, int val){
for(int i=x;i<=n;i+=i&(-i)){
aib[i]+=val;
}
}
void suma(int st, int dr){
int sdr=0,sst=0;
for(int i=dr;i>=1;i-=i&(-i)){
sdr+=aib[i];
}
for(int i=st-1;i>=1;i-=i&(-i)){
sst+=aib[i];
}
g<<sdr-sst<<'\n';
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
{
int h;
f>>h;
adun(i, h);
}
for(int i=1;i<=m;i++)
{
f>>op;
if(op==1){
int st,dr;
f>>st>>dr;
suma(st,dr);
}
else if(op==0){
int zi, s;
f>>zi>>s;
adun(zi,-s);
}
}
return 0;
}