Cod sursa(job #3274852)

Utilizator Karan_Stefan_SanalpKaran Stefan Sanalp Karan_Stefan_Sanalp Data 8 februarie 2025 11:51:52
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define Ub(x) (x&-x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[100005],AIB[100005],N,M;
void Add(int x,int val){
    for(int i=x;i<=N;i+=Ub(i)){
        AIB[i]-=val;
    }
}
int Sum(int x){
    int s=0;
    for(int i=x;i>=1;i-=Ub(i)) 
        s+=AIB[i];
    return s;
}
int main()
{   
    fin>>N>>M;
    for(int i=1;i<=N;i++){
        int z;
        fin>>z;
        Add(i,-z);
        
    }
    for(int i=1;i<=M;i++){
        int x,y,C;
        fin>>C>>x>>y;
        if(C==0) Add(x,y);
        else {
            fout<<Sum(y)-Sum(x-1)<<"\n";
        }
    }
    return 0;
}