Pagini recente » Cod sursa (job #2208035) | Cod sursa (job #644861) | Cod sursa (job #453212) | Cod sursa (job #2924472) | Cod sursa (job #3137317)
#include <fstream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n, m, a[15005], t, v, p, q, cer;
int compute(int poz)
{
int total = 0;
while(poz>0)
{
total+=a[poz];
poz = poz-zeros(poz);
}
return total;
}
int sum(int p, int q)
{
int sum_q = compute(q);
int sum_p = compute(p-1);
return sum_q-sum_p;
}
void adauga(int t, int val)
{
for(int i = t; i <= n ; i+=zeros(i))
a[i]+=val;
}
int x;
int main()
{
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> x;
adauga(i, x);
}
for(int i = 1; i <= m; i++)
{
cin >> cer ;
if(cer == 0)
{
cin >> t >> v;
adauga(t, -v);
}
else
{
cin >> p >> q;
cout << sum(p,q)<<'\n';
}
}
return 0;
}