Cod sursa(job #1517003)

Utilizator LipanmateiLipan Radu-Matei Lipanmatei Data 3 noiembrie 2015 19:36:12
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;
#define zeros(x) (x&-x)
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int AIB[15001],n,m;
void add(int poz, int val)
{
    int i;
    for(i=poz;i<=n;i+=zeros(i))
        AIB[i]+=val;
}
int sum(int poz)
{
    int i,s=0;
    for(i=poz;i>0;i-=zeros(i))
        s+=AIB[i];
    return s;
}
int main()
{
    fin>>n>>m;
    int x;
    for(int i=1;i<=n;i++)fin>>x,add(i,x);
    for(int i=1;i<=m;i++)
    {
        fin>>x;
        int a,b;
        fin>>a>>b;
        if(!x)add(a,-b);
        else fout<<sum(b)-sum(a-1)<<'\n';
    }
    return 0;
}