Cod sursa(job #1223481)

Utilizator mihaimusatMihai Musat mihaimusat Data 28 august 2014 11:39:39
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;

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

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 () {

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

    f>>n>>m;

    for (i=1;i<=n;i++) {
        f>>x;
        update (i,x);
    }
    while (m--) {
        f>>op>>x>>y;
        if (op==0) {
            update(x,-y);
        }
        else
            g<<query(y)-query(x-1)<<"\n";
    }
    return 0;
}