Pagini recente » Cod sursa (job #3211682) | Cod sursa (job #192754) | Cod sursa (job #2969627) | Cod sursa (job #2177332) | Cod sursa (job #1097970)
#include <cstdio>
using namespace std;
int x,y,z,i,n,m,copac[15010];
void update(int v,int pz)
{
int i;
for(i=pz;i<=n;i+=(i&(-i)))
copac[i]=copac[i]+v;
}
int suma(int pz)
{
int i,s=0;
for(i=pz;i>=1;i-=(i&(-i)))
s+=copac[i];
return s;
}
int query(int P1,int P2)
{
return(suma(P2)-suma(P1-1));
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
update(x,i);
}
while(m>0)
{
m--;
scanf("%d",&x);
if(x==0)
{
scanf("%d%d",&y,&z);
update(-y,z);
}
else
{
scanf("%d%d",&y,&z);
printf("%d\n",query(y,z));
}
}
return 0;
}