Pagini recente » Cod sursa (job #2643008) | Cod sursa (job #2703118) | Cod sursa (job #522712) | Cod sursa (job #3160349) | Cod sursa (job #2462449)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("aib.in");
ofstream cout("aib.out");
long long n,m,t,a,b,i;
vector<long long>x;
void update (long long i, long long e) ///i-index; e-ertek
{
while(i<=n)
{
x[i]+=e;
i+= (i & (-i));
}
}
long long osszeg (long long i)
{
long long r=0;
while(i>0)
{
r+=x[i];
i-=(i & (-i));
}
return r;
}
int main()
{
cin>>n>>m;
x.resize(n+(n & (-n))+2);
for(i=1;i<=n;++i)
{
cin>>a;
update (i,a);
}
while(m)
{
cin>>t;
if(t==0)
{
cin>>a>>b;
update(a,b);
}
else
if(t==1)
{
cin>>a>>b;
cout<<osszeg(b)-osszeg(a-1)<<"\n";
}
else
{
cin>>a;
cout<<"\n";
}
--m;
}
return 0;
}