Cod sursa(job #3249786)

Utilizator Stefaniaaa12345Stefania Stefaniaaa12345 Data 17 octombrie 2024 20:36:15
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
include <bits/stdc++.h>

using namespace std;

int a[15000], n;

void update( int i, int v ){
  while( i <= n ){
    a[i] += v;
    i += ( i & -i );
  }
}

int pref_sum( int i ){
  int s = 0;
  while( i > 0 ){
    s += a[i];
    i -= ( i & -i );
  }
  return s;
}

int range_sum( int i, int j ){
  return pref_sum(j) - pref_sum( i - 1 );
}


int main(){
  ifstream cin( "datorii.in" );
  ofstream cout( "datorii.out" );
  int m, i, o, p, q, x;
  cin >> n >> m;
  for( i = 1; i <= n; i++ ){
    cin >> x;
    update( i , x );
  }
  for( i = 0; i < m; i++ ){
    cin >> o >> p >> q;
    if( o == 0 )
      update( p, -q );
    else
      cout << range_sum( p, q ) << "\n";
  }
    return 0;
}