Pagini recente » Diferente pentru implica-te/imbunatatire-teste intre reviziile 11 si 29 | Diferente pentru implica-te/imbunatatire-teste intre reviziile 14 si 29 | Rating Lefter Sergiu (Sergetec) | Profil oganea | Cod sursa (job #3284964)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[15005];
int n , q;
void update(int val , int poz){
for(int i=poz; i<=n ; i+=(i&(-i)) )
{
aib[i]+=val;
}
}
int sum(int poz){
int s=0;
for(int i=poz ; i>0 ; i-=(i&(-i))){
s+=aib[i];
}
return s;
}
int main()
{
cin>>n>>q;
for(int i=1 ; i<=n; i++)
{
int aux;
cin>>aux;
update(aux , i);
}
while(q--){
int op ,x , y;
cin>>op>>x>>y;
if(!op){
update(-y ,x);
}
else{
cout<<sum(y)-sum(x-1)<<"\n";
}
}
return 0;
}