Pagini recente » Cod sursa (job #1649979) | Cod sursa (job #979357) | Cod sursa (job #1107821) | Cod sursa (job #609403) | Cod sursa (job #2304674)
#include <iostream>
#include <fstream>
#define last(x) (x&-x)
using namespace std;
int n,m;
int aib[15001];
void adaug(int index,int val)
{
for(;index<=n;index+=last(index))
aib[index]+=val;
}
int suma(int index)
{
int s;
for(s=0;index;index-=last(index))
s+=aib[index];
return s;
}
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for(int i=1;i<=n;i++)
{
int a;
f>>a;
adaug(i,a);
}
for(int i=1;i<=m;i++)
{
int t,a,b;
f>>t>>a>>b;
if(t)
g<<suma(b)-suma(a-1)<<'\n';
else
adaug(a,-b);
}
return 0;
}