Cod sursa(job #3370094)

Utilizator paulvex6Danci Paul paulvex6 Data 24 octombrie 2026 09:26:19
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,m,A[15001]={0};

int lowbit(int i)
{
    return i & -i;
}

void UPDATE(int i, int k)
{
    for(; i<=n; i += lowbit(i))
        A[i]+=k;
}

long long QUERY(int i)
{
    long long sum = 0;
    while(i>0)
    {
        sum+= A[i];
        i -= lowbit(i);
    }
    return sum;
}

int main()
{
    fin>>n>>m;
    for(int i = 1; i<=n; i++)
    {
        int x;
        fin>>x;
        UPDATE(i,x);
    }
    for(int i = 1; i<=m;i++)
    {
        int x,y,z;
        fin>>x>>y>>z;
        if(x==0) UPDATE(y,-z);
        else fout<<QUERY(z)-QUERY(y-1)<<"\n";
    }
    return 0;
}