Pagini recente » Cod sursa (job #699875) | Cod sursa (job #364193) | Cod sursa (job #1635082) | Cod sursa (job #2159960) | Cod sursa (job #2330015)
#include <stdio.h>
using namespace std;
FILE *f,*g;
int AIB[15002],N,M;
void CreateAIB(int P,int X)
{
for(;P<=N;P+=(P&(-P)))AIB[P]+=X;
}
void Read()
{
int i=1,X;
fscanf(f,"%d %d",&N,&M);
for(;i<=N;i++)
{
fscanf(f,"%d",&X);
CreateAIB(i,X);
}
}
int SUM(int X)
{
int S=0;
for(;X>0;X-=(X&(-X)))
S+=AIB[X];
return S;
}
void Solve()
{
int operation,T,V;
while(M)
{
M--;
fscanf(f,"%d %d %d",&operation,&T,&V);
if(!operation)
{
CreateAIB(T,V*(-1));
continue;
}
fprintf(g,"%d\n",SUM(V)-SUM(T-1));
}
}
int main()
{
f=fopen("datori.in","r");g=fopen("datori.out","w");
Read();
Solve();
return 0;
}