Pagini recente » Cod sursa (job #1838488) | Cod sursa (job #576730) | Cod sursa (job #1058887) | Cod sursa (job #790825) | Cod sursa (job #477500)
Cod sursa(job #477500)
#include <fstream>
#define zeros(x) ( ( (x) ^ (x-1) ) & x)
#define NMAX 15001
using namespace std;
int AIB[NMAX];
int N;
void add(int t, int v)
{
for(int i=t;i<=N;i+=zeros(i))
{
AIB[i]+=v;
}
}
int query(int x)
{
int ret=0;
for(int i=x;i>0;i-=zeros(i))
{
ret+=AIB[i];
}
return ret;
}
void citire()
{
fstream fin("datorii.in",ios::in);
fstream fout("datorii.out",ios::out);
int M;
int x,y,z;
fin>>N>>M;
for(register int i=1;i<=N;i++)
{
fin>>x;
add(i,x);
}
for(register int i=1;i<=M;i++)
{
fin>>x;
switch(x)
{
case(0):
{
fin>>y>>z;
add(y,-z);
break;
}
case(1):
{
fin>>y>>z;
fout<<query(z)-query(y-1)<<"\n";
break;
}
}
}
fout.close();
fin.close();
}
int main(int argc,char *argv[])
{
citire();
}