Pagini recente » Cod sursa (job #3234963) | Cod sursa (job #1091717) | Rating Petrisor Costy (costy_petrisor) | Cod sursa (job #1843741) | Cod sursa (job #3262915)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
const int Nmax = 15005;
int v[Nmax], aib[Nmax];
int n;
void update(int poz, int val)
{
while(poz <= n)
{
aib[poz] += val;
poz += (poz & (-poz));
}
}
int qu(int poz)
{
int ans = 0;
while(poz > 0)
{
ans += aib[poz];
poz -= (poz & (-poz));
}
return ans;
}
int query(int a, int b)
{
return qu(b) - qu(a - 1);
}
int main()
{
int m, i, tip, a, b;
cin >> n >> m;
for(i = 1; i <= n; i ++)
{
cin >> v[i];
update(i, v[i]);
}
//cout << query(1, n) <<'\n'
for(i = 1; i <= m; i ++)
{
cin >> tip >> a >> b;
if(tip == 0)
update(a, -b);
else
cout << query(a, b) << '\n';
}
return 0;
}