Pagini recente » Cod sursa (job #1796511) | Cod sursa (job #212793) | Cod sursa (job #506647) | Cod sursa (job #1871088) | Cod sursa (job #2410443)
#include <bits/stdc++.h>
#define DIM 15005
using namespace std;
ifstream f ("datorii.in") ;
ofstream g ("datorii.out") ;
int N , M , cer , a , b;
int AIB[DIM] , x;
void Update (int poz , int val)
{
for (int i = poz ; i <= N ; i += i&(-i))
AIB[i] += val;
return ;
}
int Query(int poz)
{
int sum = 0 ;
for (int i = poz ; i >= 1 ; i -= i & (-i))
sum += AIB[i] ;
return sum ;
}
int main()
{
f >> N >> M ;
for (int i = 1 ; i <= N ; ++i)
{
f >> x ;
Update(i,x) ;
}
for (int i = 1 ; i <= M ; ++i)
{
f >> cer >> a >> b;
if (cer == 0)
Update(a,-b) ; // se scade
else
g << Query(b) - Query(a-1) << '\n';// Suma dintre a si b , ca la sume partiale
}
f.close();
g.close();
return 0;
}