Pagini recente » Cod sursa (job #1594547) | Cod sursa (job #1133757) | Cod sursa (job #842989) | Cod sursa (job #1689929) | Cod sursa (job #459780)
Cod sursa(job #459780)
#include<cstdio>
#include<fstream>
#include<iostream>
using namespace std;
#define nn 20000
int v[nn];
int n,m,x;
int t,s,d;
void adauga (int p, int val)
{
for(;p<=n;p+=p^(p-1)&p)
v[p]+=val;
}
int quest (int p)
{
int S;
for(S=0;p;p-=p^(p-1)&p)
S+=v[p];
return S;
}
int main ()
{
ifstream in ("datorii.in");
//freopen ("datorii.out","w",stdout);
in>>n>>m;
for(int i=1;i<=n;++i){
in>>x;
adauga(i,x);
}
while(m){
in>>t>>s>>d;
switch(t){
case 0:adauga(s, -d );break;
case 1:printf("%d\n",(quest(d)-quest(s-1)));break;
}
--m;}
in.close();
return 0;}