Cod sursa(job #2361081)

Utilizator DavidDragulinDragulin David DavidDragulin Data 2 martie 2019 12:49:27
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int N=15009;
int n,m;
int a[N],aib[N];
void read()
{
    fin.sync_with_stdio(false);
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        fin>>a[i];
}
void update(int x,int y)
{
    while(x<=n)
    {
        aib[x]+=y;
        x+=x&(-x);
    }
}
int query(int x)
{
    int sum=0;
    while(x)
    {
        sum+=aib[x];
        x-=x&(-x);
    }
    return sum;
}
void solve()
{
    for(int i=1;i<=n;i++)
        update(i,a[i]);
    for(int i=1;i<=m;i++)
    {
        int caz,x,y;
        fin>>caz>>x>>y;
        if(caz==0)
            update(x,-y);
        else
            fout<<query(y)-query(x-1)<<'\n';
    }
}
int main()
{
    read();
    solve();
    return 0;
}