Cod sursa(job #2494265)

Utilizator pimao2004Lupu Stefan Dragos pimao2004 Data 17 noiembrie 2019 17:03:39
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream in ("datorii.in");
ofstream out ("datorii.out");
int aib[1007];
int n;
int zeros(int x)
{
    return ((x^(x-1))&x);
}
void update(int poz,int x)
{
    for(int i=poz;i<=n;i+=zeros(i))
        aib[i]+=x;
}
int sum(int poz)
{
    int r=0;
    for(int i=poz;i;i-=zeros(i))
        r=r+aib[i];
    return r;
}
int main()
{
    int m;
    int i,x;
    int q,a,b;
    in>>n>>m;
    for(i=1;i<=n;i++)
    {
        in>>x;
        update(i,x);
    }
    for(i=1;i<=m;i++)
    {
        in>>q>>a>>b;
        if(!q)
            update(a,-b);
        else
        {
            out<<sum(b)-sum(a-1)<<'\n';
        }
    }
    return 0;
}