Pagini recente » Cod sursa (job #1196348) | Cod sursa (job #1073741) | Cod sursa (job #2089518) | Cod sursa (job #2703163) | Cod sursa (job #2776463)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int aib[15005];
int n;
void update(int x, int val)
{
int i;
for(i = x; i <= n; i += (i & -i))
aib[i] += val;
}
int solve(int x)
{
int i, sum = 0;
for(i = x; i >= 1; i -= (i & -i))
sum += aib[i];
return sum;
}
int query(int l, int r)
{
return solve(r) - solve(l - 1);
}
int main()
{
int i, j, m, tip, x, y;
cin >> n >> m;
for(i = 1; i <= n; i++){
cin >> x;
update(i, x);
}
for(j = 1; j <= m; j++){
cin >> tip >> x >> y;
if(tip == 1)
cout << query(x, y) << "\n";
else
update(x, -y);
}
return 0;
}