Cod sursa(job #3345112)

Utilizator mihaidragiDragu Mihai mihaidragi Data 7 martie 2026 23:06:35
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
#define zeros(x)((x^(x-1))&x)
//Doamne Iisuse Hristoase Fiul lui Dumnezeu miluieste-ma pe mine pacatosul
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
vector<int>A(n+1);
vector<int>arb(n+1);
void Add(int x,int val)
{
    for(int i=x;i<=n;i+=zeros(i))
        arb[i]+=val;
}
int Compute(int x)
{
    int sum=0;
    for(int i=x;i>0;i-=zeros(i))
       sum+=arb[i];
    return sum;
}
int main()
{
      ios::sync_with_stdio(false);
      in.tie(NULL);
      in>>n>>m;
      A.resize(n+1);
      arb.resize(n+1);
 for(int i=1;i<=n;++i)
 {
     in>>A[i];
     Add(i,A[i]);
 }
      while(m--)
      {
        int cer,x,y;
         in>>cer>>x>>y;
         if(cer==0)
            Add(x,-y);
         else
           out<<Compute(y)-Compute(x-1)<<'\n';
      }
    return 0;
}