Pagini recente » Cod sursa (job #551179) | Cod sursa (job #1937529) | Cod sursa (job #586774) | Cod sursa (job #2683853) | Cod sursa (job #2523645)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
void adauga(int x,int i, unsigned short int A[],int n)
{
do
{
A[i]+=x;
i=i+(i&(-i));
}
while(i<=n);
}
unsigned short int A[15040];
int suma(int x,unsigned short 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<=k;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";
}
}
}