Pagini recente » Cod sursa (job #2517020) | Cod sursa (job #1075659) | Cod sursa (job #490152) | Cod sursa (job #2307282) | Cod sursa (job #1817496)
#include <fstream>
#include<iostream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMax=100005;
int N,M,AIB[NMax];
void Update(int P,int V)
{
for(int i=P; i<=N ; i=i+(i&(-i)))
AIB[i]+=V;
}
int Query(int P)
{
int S=0;
for(int i=P; i>0;i=i-(i&(-i)))
S+=AIB[i];
return S;
}
int main()
{
fin>>N>>M;
for(int i=1;i<=N;++i){
int V; fin>>V;
Update(i,V);
}
while(M--){
int type,X,Y;
fin>>type>>X>>Y;
if(type==1){
fout<<(Query(Y)-Query(X-1))<<"\n";
}
else{
Update(X,-Y);
}
}
return 0;
}