Pagini recente » Cod sursa (job #1181537) | Cod sursa (job #2717865) | Cod sursa (job #1537341) | Cod sursa (job #1820353) | Cod sursa (job #2314191)
#include<fstream>
#define f(x) (x&(-x))
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N,M, ai[15004];
void update(int x, int c,int ai[], int N)
{
int i;
for(i=x;i<=N;i=i+f(i))
{
ai[i]=ai[i]+c;
}
}
int sum(int x,int ai[])
{
int i,sum=0;
for(i=x;i>0;i=i-f(i))
{
sum=sum+ai[i];
}
return sum;
}
int main()
{
fin>>N>>M;
int i;
for(i=1;i<=N;i++)
{
int val;
fin>>val;
update(i,val,ai,N);
}
for(i=1;i<=M;i++)
{
int digit, a,b;
fin>>digit>>a>>b;
if(digit == 0)
{
int c=-b;
update(a,c,ai,N);
}
else
{
int a1=sum(b,ai);
int a2=sum(a-1,ai);
fout<<a1-a2<<"\n";
}
}
fin.close();
fout.close();
return 0;
}