Pagini recente » Cod sursa (job #986542) | Cod sursa (job #32603) | Cod sursa (job #38230) | Cod sursa (job #2931859) | Cod sursa (job #2999509)
#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()
{
ios_base::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
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;
}