Pagini recente » Cod sursa (job #3276501) | Cod sursa (job #938901) | Cod sursa (job #1199322) | Cod sursa (job #2306419) | Cod sursa (job #3280781)
#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];
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];
add(i,v[i]);
}
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;
}
}
/*15
5 2 9 -3 5 20 10 -7 2 3 -4 0 -2 15 5*/