Cod sursa(job #2284566)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 17 noiembrie 2018 11:37:53
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define indice(i) (i & (-i))
using namespace std;

int n,AIB[16000];

void adaug(int i,int x)
{
    int j;
    for(j=i;j<=n;j+=indice(j))
    {
        AIB[j]+=x;
    }
}


int suma(int i)
{
    int j,s=0;
    for(j=i;j>0;j-=indice(j))
    {
        s=s+AIB[j];
    }
    return s;
}


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

int i,k,cer,y,x;

int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)
    {
        f>>x;
        adaug(i,x);
    }

    for(i=1;i<=k;i++)
    {
        f>>cer>>x>>y;
        if(cer==0)adaug(x,-y);
        else {g<<suma(y)-suma(x-1)<<'\n';}
    }
    return 0;
}