Cod sursa(job #1141927)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 13 martie 2014 12:04:47
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

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

int n,m,x,y,op,v[15010],i,p;

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

void update (int poz, int x) {

    for (int i=poz;i<=n;i+=lsb(i))
        v[i]+=x;
}

long long query (int poz) {

    long long sum=0;

    for (int i=poz;i>=1;i-=lsb(i))
        sum+=v[i];
    return sum;
}


int main () {

    fin>>n>>m;

    for (i=1;i<=n;i++) {
        fin>>x;
        update (i,x);
    }

    while (m--) {
        fin>>op>>x>>y;
        if (op==0) {
            update(x,-y);
        }
        else
            fout<<query(y)-query(x-1)<<"\n";

    }

    return 0;
}