Cod sursa(job #3311620)

Utilizator Albert_PrimeAlbert Olariu Albert_Prime Data 23 septembrie 2025 16:02:42
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n;
int bit[150050];
void update(int i,int val){
  while(i<=n){
    bit[i]+=val;
    i+=i&(-i);
  }
}
int prefix(int i){
  int sum=0;
  while(i>0){
    sum+=bit[i];
    i-=i&-i;
  }
  return sum;
}
int main(){
  int n,m,x,y,z;
  cin>>n>>m;
  for(int i=1;i<=n;i++){
    cin>>x;
    update(i,x);
  }
  for(int i=1;i<=m;i++){
    cin>>x>>y>>z;
    if(x==0){
      update(y,-z);
    }
    else{
      cout<<prefix(z)-prefix(y-1)<<'\n';
    }
  }
}