Cod sursa(job #3329675)

Utilizator SfichiAndreiSfichi Andrei SfichiAndrei Data 14 decembrie 2025 21:44:27
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
const int Nmax=15000;
int aib[Nmax+3];
int N,M;
int tip,T,V,P,Q;
int ub(int x)
{
    return (x&(-x));
}
void add(int x, int y)
{
    for(int i=x; i<=N; i+=ub(i))
        aib[i]+=y;
}
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;
    int x;
    for(int i=1; i<=N; i++)
    {
        fin>>x;
        add(i,x);
    }
    while(M--)
    {
        fin>>tip;
        if(tip==0)
        {
            fin>>T>>V;
            add(T,V*(-1));
        }
        else
        {
            fin>>P>>Q;
            fout<<sum(Q)-sum(P-1)<<'\n';
        }
    }
    return 0;
}