Pagini recente » Cod sursa (job #2578278) | Cod sursa (job #669431) | Cod sursa (job #3171793) | Cod sursa (job #2110269) | Cod sursa (job #2523010)
#include<iostream>
#include<fstream>
#include<cstring>
#include<math.h>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
void adauga(int x,int i, int A[],int n)
{
do
{
A[i]+=x;
i=i+i&-i;
}
while(i<=n);
}
int A[10000];
int suma(int x,int A[])
{
int s=0;
while(x)
{
s+=A[x];
x=x&(x-1);
}
return s;
}
int main()
{
int n,k,i,x,p,a,b,t,v;
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>x;
adauga(x,i,A,n);
}
for(i=1;i<=n;i++)
{
f>>p;
if(p==0)
{
f>>t>>v;
adauga(-v,t,A,n);
}
else
{
f>>a>>b;
g<<suma(b,A)-suma(a-1,A)<<"\n";
}
}
}