Cod sursa(job #1323944)

Utilizator Miruna_DMiruna Miruna_D Data 21 ianuarie 2015 17:29:38
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#define Nmax 15001
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n,m;
int S[Nmax];
void update(int poz,int val)
{
    int i;
    for(i=poz;i<=n;i=i+(i&(-i)))
        S[i]-=val;

}

int query(int poz)
{
        int i,suma=0;
    for(i=poz;i>0;i=i-(i&(-i)))
        suma=suma+S[i];
    return suma;
}
void read()
{
    fin>>n>>m;
    int x;
    for(int i=1;i<=n;i++)
    {
        fin>>x;
        update(i,-x);
    }

    for(int i=1;i<=m;i++)
    {
        int op,x,y;
        fin>>op>>x>>y;
        if(op==0) update(x,y);
        if(op==1) fout<<query(y)-query(x-1)<<"\n";
    }

}
int main()
{
    read();
    return 0;
}