Pagini recente » Cod sursa (job #936513) | Cod sursa (job #2327070) | Cod sursa (job #3173269) | Cod sursa (job #2823605) | Cod sursa (job #3280790)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m,caz,T,V,P,Q,v[15001],t[15001];
void fenwick()
{
for(int i=1;i<=n;i++)
{
int p=i+(i&-i);
if(p<=n)
t[p]+=t[i];
}
}
int dif(int i)
{
int sum=0;
while (i)
{
sum+=t[i];
i= i-(i&-i);
}
return sum;
}
void add(int i,int k)
{
while(i<=n)
{
t[i]=t[i]-k;
i=i+(i&-i);
}
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>v[i];
t[i]=v[i];
}
fenwick();
while(m)
{
fin>>caz;
switch (caz)
{
case 0:
{
fin>>T>>V;
add(T,V);
break;
}
case 1:
{
fin>>P>>Q;
fout<<dif(Q)-dif(P-1)<<endl;
break;
}
}
--m;
}
}