Cod sursa(job #2741821)

Utilizator AndreiAlexandru2k3Ciucan Andrei Alexandru AndreiAlexandru2k3 Data 19 aprilie 2021 14:39:28
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int NMAX=15001;

int N,M,
    AiB[NMAX];

void add(int val, int i)
{
    while(i<=N)
    {
        AiB[i]+=val;
        i+=i&(-i);
    }
}

void citire()
{
    f>>N>>M;
    for(int i=1;i<=N;i++)
    {
        int x;
        f>>x;
        add(x,i);
    }
}

int sum(int i)
{
    int sum=0;
    while(i>0)
    {
        sum+=AiB[i];
        i-=i&(-i);
    }
    return sum;
}

int main()
{
    citire();
    while(M--)
    {
        int op,X,Y;
        f>>op>>X>>Y;
        ///cout<<"MERE";
        if(op==0)
            add(-Y,X);
        else
            g<<sum(Y)-sum(X-1)<<'\n';
    }
    return 0;
}