Pagini recente » Cod sursa (job #2856464) | Cod sursa (job #349872) | Cod sursa (job #174555) | Cod sursa (job #1440376) | Cod sursa (job #221938)
Cod sursa(job #221938)
#include <cstdio>
#include <vector>
using namespace std;
vector <int> A (15000);
int N, M;
inline int LST (int x) {return x & (-x);}
void update (int x, int y)
{
for (int i=x; i<=N; i+= LST(i))
A[i]+= y;
}
int query (int x)
{
int S=0;
for (int i=x; i>0; i-= LST(i))
S+=A[i];
return S;
}
int main()
{
freopen ("datorii.in", "r", stdin);
freopen ("datorii.out", "w", stdout);
int c, x, y;
scanf ("%d%d", &N, &M);
for (int i=1; i<=N; ++i)
{
scanf ("%d", &c);
update (i,c);
}
for (int i=0; i<M; ++i)
{
scanf ("%d %d %d", &c, &x, &y);
if (c) printf ("%d\n", (query (y)-query (x-1)));
else update (x,-y);
}
return 0;
}