Cod sursa(job #2634500)

Utilizator betybety bety bety Data 11 iulie 2020 11:07:51
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>

#define N 15000



int n, aib[N+1];

void update (int i, int x) {

    for (; i<=n; i+=i&(-i))

        aib[i]+=x;

}



int query (int i) {

    int ans=0;

    for (; i; i-=i&(-i))

        ans+=aib[i];

    return ans;

}



int main (void) {

    FILE *fin=fopen("datorii.in", "r"),

         *fout=fopen("datorii.out", "w");



    int m, i, x, y;

    fscanf(fin, "%d%d", &n, &m);

    for (i=1; i<=n; ++i) {

        fscanf(fin, "%d", &x);

        update(i, x);

    }



    for (; m; --m) {

        fscanf(fin, "%d%d%d", &i, &x, &y);

        if (i)

            fprintf(fout, "%d\n", query(y)-query(x-1));

        else

            update(x, -y);

    }

    return 0;

}