Cod sursa(job #1844260)

Utilizator Alexandru_IulianAlexandru Iulian Alexandru_Iulian Data 9 ianuarie 2017 20:45:38
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
#define zeros(x) (x&(-x))

ifstream f("datorii.in");
ofstream g("datorii.out");
int n,i,nr, aib[100001],m,x,b,a;

void addAIB(int x, int q)
{
    for(int i=x; i<=n; i+=zeros(i))
    {
        aib[i]+=q;
    }
}

int getAIB(int val)
{
    int s=0;
    for(i=val; i>0; i-=zeros(i))
    {
        s+=aib[i];
    }
    return s;
}

int main()
{
    f>>n>>m;

    for(i=1;i<=n;i++){
        f>>x;
    addAIB(i,x);
    }

    for(i=1;i<=m;i++){
        f>>nr>>a>>b;

        if(nr==0) addAIB(b,-a);
    if(nr==1)  g<<getAIB(b)-getAIB(a-1)<<'\n';

    }

    return 0;
}