Pagini recente » Cod sursa (job #1946550) | Cod sursa (job #2159158) | Cod sursa (job #2982592) | Cod sursa (job #2282653) | Cod sursa (job #2199822)
#include <fstream>
#define D_MAX 100005
#define P(x) ( x&(-x) )
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int a[D_MAX],n,m;
void ADD(int what, int where)
{
for(int i=where; i<=n; i+=P(i))
{
a[i]+=what;
}
}
int S(int x)
{
int sum=0;
for(int i=x; i>0; i-=P(i))
{
sum+=a[i];
}
return sum;
}
int suma_pe_interval(int p1, int p2)
{
return S(p2)-S(p1-1);
}
int main()
{
cin >> n >> m;
for(int i=1; i<=n; i++)
{
int x;
cin >> x;
ADD(x,i);
}
for(int i=0; i<m; i++)
{
int x,y,z;
cin >> z >> x >> y;
if(z)
{
cout << suma_pe_interval(x,y) << '\n';
}
else
{
ADD(-y,x);
}
}
return 0;
}