Cod sursa(job #2999904)

Utilizator alexandrupopa11Alexandru alexandrupopa11 Data 11 martie 2023 18:14:25
Problema Datorii Scor 100
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[15001];

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>>p>>q;
        if(t == 0)
            add(p,-q);
        else
            out<<question(q)-question(p-1)<<"\n";
    }

    return 0;
}