Cod sursa(job #3279264)

Utilizator Radu_Stefan2010Radu Loga Radu_Stefan2010 Data 22 februarie 2025 12:43:40
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("datorii.in");
ofstream out("datorii.out");

int aib[15007];
int n,m,x,q,a,b;

void update(int poz,int x)
{
    for(int i=poz;i<=n;i+=(i^(i-1)&i))
        aib[i]+=x;
}

int ss(int poz)
{
    int sum=0;
    for(int i=poz;i!=0;i-=(i^(i-1)&i))
        sum=sum+aib[i];
    return sum;
}

int main()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
    {
        in>>x;
        update(i,x);
    }
    for(int i=1;i<=m;i++)
    {
        in>>q>>a>>b;
        if(q==0)
            update(a,-b);
        else
            out<<ss(b)-ss(a-1)<<'\n';
    }
    return 0;
}