Pagini recente » Cod sursa (job #2532673) | Cod sursa (job #2031985) | Cod sursa (job #1827274) | Cod sursa (job #893236) | Cod sursa (job #2160304)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int A[32000];
int n,m;
int x,y,z;
int Get_Urm(int x)
{
return x + (x & -x);
}
int Get_Par(int x)
{
return x - (x & -x);
}
void update(int val,int poz)
{
while (poz<=n)
{
A[poz]+=val;
poz=Get_Urm(poz);
}
}
int get_Sum(int poz)
{
poz++;
int sum=0;
while (poz>0)
{
sum+=A[poz];
poz=Get_Par(poz);
}
return sum;
}
int main()
{
fin>>n>>m;
for (int i=1; i<=n; i++)
{
int k;
fin>>k;
update(k,i);
}
for (int i=1;i<=m;i++)
{
fin>>x>>y>>z;
if (x==0)
{
update(-z,y);
}
else
{
fout<<get_Sum(z)-get_Sum(y-2)<<'\n';
}
}
return 0;
}