Cod sursa(job #2052854)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 31 octombrie 2017 09:17:30
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>

using namespace std;
int v[15001],n;
void update (int p,int nr){
    for (;p<=n;p+=(p&-p))
        v[p]+=nr;
}
int query (int p){
    int s=0;
    for (;p;p-=(p&-p))
        s+=v[p];
    return s;
}
int main()
{
    FILE *fin=fopen ("datorii.in","r");
    FILE *fout=fopen ("datorii.out","w");
    int m,i,cer,a,b,x;
    fscanf (fin,"%d%d",&n,&m);
    for (i=1;i<=n;i++){
        fscanf (fin,"%d",&x);
        update (i,x);
    }
    for (i=1;i<=m;i++){
        fscanf (fin,"%d%d%d",&cer,&a,&b);
        if (cer==0)
            update (a,-b);
        else fprintf (fout,"%d\n",query(b)-query(a-1));
    }
    return 0;
}