Pagini recente » Cod sursa (job #48453) | Cod sursa (job #1071957) | Cod sursa (job #2143877) | Cod sursa (job #2619307) | Cod sursa (job #2442588)
#include <iostream>
#include <fstream>
#define MaxN 100001
#define last(x) (x&(-x))
using namespace std;
int n,m;
int aib[MaxN];
int sum(int poz)
{
int rez=0;
for(int i=poz;i>0;i-=last(i))
rez+=aib[i];
return rez;
}
void update(int poz,int val)
{
for(int i=poz;i<=n;i+=last(i))
aib[i]+=val;
}
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for(int i=1;i<=n;i++)
{
int a;
f>>a;
update(i,a);
}
for(int i=1;i<=m;i++)
{
int c,a,b;
f>>c>>a>>b;
if(c==0)
update(a,-b);
else
g<<sum(b)-sum(a-1)<<'\n';
}
f.close();
g.close();
return 0;
}