Cod sursa(job #2410448)

Utilizator nicholascantarNicholas David Cantar Gogitidze nicholascantar Data 20 aprilie 2019 08:35:13
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define ind(x) (x&(-x))
using namespace std;
int aib[15100],n;
void adaug(int poz, int val)
{
    int i;
    for(i=poz;i<=n;i=i+ind(i))
        aib[i]=aib[i]+val;
}
int suma(int poz)
{
    int i, s=0;
    for(i=poz;i>=1;i=i-ind(i))
        s+=aib[i];
    return s;
}
int m,i,x,caz,a,b;
int main()
{
    ifstream fin ("datorii.in");
    ofstream fout ("datorii.out");
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        adaug(i,x);
    }
    for(i=1;i<=m;i++)
    {
        fin>>caz>>a>>b;
        if(caz==0) adaug(a,-b);
        else
        {
            fout<<suma(b)-suma(a-1)<<'\n';
        }
    }
    return 0;
}