Pagini recente » Cod sursa (job #562382) | Cod sursa (job #2942154) | Cod sursa (job #1776134) | Cod sursa (job #709414) | Cod sursa (job #2392139)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("datorii.in");
ofstream fo("datorii.out");
int n,m;
int a[15001],aib[15001];
void update(int i, int x)
{
if(i<=n)
{
aib[i]+=x;
int y=i&(-i);
update(i+y,x);
}
}
long long query(int i)
{
if(i>=1)
{
long long ans=0;
int y=i&(-i);
ans+=aib[i];
ans+=query(i-y);
return ans;
}
return 0;
}
int main()
{
fi>>n>>m;
for(int i=1; i<=n; i++)
fi>>a[i];
for(int i=1; i<=n; i++)
update(i,a[i]);
for(int i=1; i<=m; i++)
{
int x;
int v1,v2;
fi>>x;
fi>>v1>>v2;
if(x==0)
update(v1,-v2);
else
fo<<query(v2)-query(v1-1)<<'\n';
}
}