Pagini recente » Cod sursa (job #1553177) | Cod sursa (job #1654451) | Cod sursa (job #3272508) | Cod sursa (job #525461) | Cod sursa (job #2999507)
#include <fstream>
const int NMAX=100005;
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[NMAX];
int n, q, nr;
int query(int);
void update(int, int);
int main()
{
int i, tip, val, poz, st, dr;
fin>>n>>q;
for(i=1; i<=n; i++)
{
fin>>nr;
update(i, nr);
}
for(i=1; i<=q; i++)
{
fin>>tip;
if(tip==0)
{
fin>>poz>>val;
update(poz, -val);
}
else
{
fin>>st>>dr;
fout<<query(dr)-query(st-1)<<'\n';
}
}
return 0;
}
int query(int poz)
{
int sum=0, i;
for(i=poz; i>0; i-=i&(-i)) sum+=aib[i];
return sum;
}
void update(int poz, int val)
{
int i;
for(i=poz; i<=n; i+=i&(-i)) aib[i]+=val;
}