Cod sursa(job #2294919)
| Utilizator | Data | 2 decembrie 2018 22:40:40 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15001],n,m,q,x,y;
void update(int ind,int val)
{
while(ind<=n)
{
v[ind]+=val;
ind+=ind&(-ind);
}
}
int getsum(int ind)
{
int sum=0;
while(ind>0)
{
sum+=v[ind];
ind-=ind&(-ind);
}
return sum;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>x;
update(i,x);
}
for(;m;m--)
{
fin>>q>>x>>y;
if(q)
{
fout<<getsum(y)-getsum(x-1)<<'\n';
}
else{
update(x,-y);
}
}
return 0;
}
