Cod sursa(job #3339208)

Utilizator Fishy3Petrus Serban Fishy3 Data 6 februarie 2026 20:01:36
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");

int aib[15001];
int n , m , v[15001];
void update(int poz , int val)
{
  while(poz <= n)
  {
    aib[poz] += val;
    poz += (poz & (-poz));
  }
}
int a, b, c;
int query(int poz)
{
  int sum = 0;
  while(poz > 0)
  {
    sum += aib[poz];
    poz -= (poz & (-poz));
  }
  return sum;
}

int main()
{
    cin >> n >> m;

    for(int i=1;i<=n;i++)
    {
      cin >> v[i];
      update (i , v[i]);
    }

    for(int i=1;i<=m;i++)
    {
      cin >> a >> b >> c;
      if(a == 0)
      {
        update (b , -c);
      }
      else cout << query(c) - query(b-1) << '\n';
    }
    return 0;
}