Cod sursa(job #1545381)

Utilizator roxi22Roxi C. roxi22 Data 6 decembrie 2015 18:14:41
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

#define nmax 15001

ifstream fin("datorii.in");
ofstream fout("datorii.out");

int n,m;
int AIB[nmax];
void update(int p,int x){
    int i;
    for(i=p;i<=n;i+=i&(-i))
        AIB[i]+=x;}
int query(int p){
    int s=0,i;
    for( i=p;i>=1;i-=i&(-i))
        s+=AIB[i];
    return s;}

int main()
{
    fin>>n>>m;
    int x;
    for(int i=1;i<=n;i++)
        {fin>>x;
        update(i,x);}
    int val,t,v,p,q;
    for(int i=1;i<=m;i++)
        {fin>>val;
        if(val==0)
            {fin>>t>>v;
            update(t,-v);}
        else
            {fin>>p>>q;
            fout<<query(q)-query(p-1)<<"\n";
            }}

    return 0;
}