Pagini recente » Cod sursa (job #586499) | Cod sursa (job #2050048) | Cod sursa (job #2181288) | Cod sursa (job #391937) | Cod sursa (job #2289685)
#include <bits/stdc++.h>
#define indice(j) (j&(-j))
using namespace std ;
ifstream fin("datorii.in");
ofstream fout ("datorii.out");
int N , M , AIB[15010] , X , cerinta , B , C ;
void update (int i , int x)
{
int j ;
for (j = i ; j <= N ; j += indice(j))
AIB[j] += x;
}
int querry (int i)
{
int j , s = 0 ;
for (j = i ; j >= 1 ; j -= indice(j))
s += AIB[j];
return s;
}
int main()
{
fin >> N >> M ;
for (int i = 1 ; i <= N ; i ++ )
{
fin >> X ;
update(i,X) ;
}
for (int i = 1 ; i <= M ; i ++)
{
fin >> cerinta >> B >> C;
if (cerinta == 0) {update(B , -C);}
else {fout<< querry(C) - querry(B-1) << '\n'; }
}
return 0 ;
}