Pagini recente » Cod sursa (job #2848233) | Cod sursa (job #1580700) | Cod sursa (job #481230) | Cod sursa (job #880254) | Cod sursa (job #3247347)
#include <fstream>
using namespace std;
ifstream cin ("datorii.in");
ofstream cout ("datorii.out");
#define N 15000
int aib[N+1];
void setare (int n, int i, int a){
while (i<=n){
aib[i]+=a;
i+=i&-i;
}
}
void update (int n, int i, int a){
while (i<=n){
aib[i]-=a;
i+=i&-i;
}
}
int sum (int n, int i){
int s=0;
while (i>0){
s+=aib[i];
i-=i&-i;
}
return s;
}
int main()
{
int n,m,i,cer,a,b;
cin >> n >> m;
for (i=1; i<=n; i++){
cin >> a;
setare(n, i, a);
}
for (i=0; i<m; i++){
cin >> cer >> a >> b;
if (cer==1)
cout << sum(n, b)-sum(n, a-1) << '\n';
else
update(n, a, b);
}
return 0;
}