Cod sursa(job #2999893)

Utilizator alexandrupopa11Alexandru alexandrupopa11 Data 11 martie 2023 17:58:46
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
#define opp(x) ((x^(x-1))&x)

using namespace std;

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

int n,m,aib[15000];

void add(int poz,int val)
{
    for(int i = poz;i<=n;i += opp(i))
        aib[i] += val;
}

int question(int x)
{
    int rez = 0;
    for(int i = x;i;i -= opp(i))
        rez += aib[i];
    return rez;
}

int main()
{
    in>>n>>m;
    for(int i = 1;i<=n;i++)
    {
        int x;
        in>>x;
        add(i,x);
    }
    for(int i = 1;i<=m;i++)
    {
        int q,p,t;
        in>>t>>q>>p;
        if(t == 0)
            add(q,-p);
        else
            out<<question(p)-question(q-1)<<"\n";
    }

    return 0;
}