Pagini recente » Rezultatele filtrării | Borderou de evaluare (job #148709) | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #1223481)
#include <fstream>
using namespace std;
int n,m,x,y,op,i,p;
int v[100005];
int lsb (int i) {
return i&(-i);
}
void update(int poz, int x) {
for (int i=poz;i<=n;i+=lsb(i))
v[i]+=x;
}
long long query(int poz) {
long long sum=0;
for (int i=poz;i>=1;i-=lsb(i))
sum+=v[i];
return sum;
}
int main () {
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for (i=1;i<=n;i++) {
f>>x;
update (i,x);
}
while (m--) {
f>>op>>x>>y;
if (op==0) {
update(x,-y);
}
else
g<<query(y)-query(x-1)<<"\n";
}
return 0;
}