Pagini recente » Cod sursa (job #1390371) | Cod sursa (job #1076784) | Diferente pentru problema/decod intre reviziile 32 si 20 | Cod sursa (job #1087379) | Cod sursa (job #2414811)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("datorii.in");
ofstream fo("datorii.out");
int N,S[14900];
int M,i,q,x,a,b;
void add(int a,int b)
{
int k;
for(k=a;k<=N;k+=(k&(-k))) S[k]+=b;
}
int total(int a)
{
int k,suma=0;
for(k=a;k>=1;k-=(k&(-k))) suma+=S[k];
return suma;
}
int main()
{
fi >> N >> M;
for(i=1;i<=N;i++)
{
fi >> x;
add(i,x);
}
for(i=1;i<=M;i++)
{
fi >> q >> a >> b;
if(q) fo << total(b)-total(a-1) << '\n';
else add(a,-b);
}
}