Cod sursa(job #2377965)

Utilizator serbandonceanSerban Doncean serbandoncean Data 11 martie 2019 15:20:09
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define DMAX 100100
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[DMAX],AIB[DMAX];
void citire();
int n,m,op;
void constr(int poz,int cat);
int Suma(int x);
int main()
{
   citire();

}
void citire()
{int i;
int x,y;
    fin>>n>>m;
    for(i=1;i<=n;i++)
        {fin>>x;constr(i,x);}
    for(i=1;i<=m;i++)
    {
        fin>>op>>x>>y;
        if(!op)
        {
            constr(x,-y);

        }
        else
        {
            fout<<Suma(y)-Suma(x-1)<<'\n';
        }

    }


}
void constr(int poz,int cat)
{
    int i;
    for(i=poz;i<=n;i+= zeros(i))
        AIB[i]+=cat;
}
int Suma(int x)
{
    int i,ret=0;
    for(i=x;i>0;i-=zeros(i))
        ret+=AIB[i];
    return ret;
}