Pagini recente » Cod sursa (job #1463021) | Cod sursa (job #1613391) | Cod sursa (job #2967822) | Cod sursa (job #1084208) | Cod sursa (job #2410448)
#include <fstream>
#define ind(x) (x&(-x))
using namespace std;
int aib[15100],n;
void adaug(int poz, int val)
{
int i;
for(i=poz;i<=n;i=i+ind(i))
aib[i]=aib[i]+val;
}
int suma(int poz)
{
int i, s=0;
for(i=poz;i>=1;i=i-ind(i))
s+=aib[i];
return s;
}
int m,i,x,caz,a,b;
int main()
{
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>x;
adaug(i,x);
}
for(i=1;i<=m;i++)
{
fin>>caz>>a>>b;
if(caz==0) adaug(a,-b);
else
{
fout<<suma(b)-suma(a-1)<<'\n';
}
}
return 0;
}