Cod sursa(job #1817496)

Utilizator LizaSzabo Liza Liza Data 27 noiembrie 2016 22:16:37
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include<iostream>

using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMax=100005;
int N,M,AIB[NMax];

void Update(int P,int V)
{
    for(int i=P; i<=N ; i=i+(i&(-i)))
        AIB[i]+=V;
}

int Query(int P)
{
    int S=0;
    for(int i=P; i>0;i=i-(i&(-i)))
        S+=AIB[i];
    return S;
}


int main()
{

    fin>>N>>M;
    for(int i=1;i<=N;++i){
       int V; fin>>V;
        Update(i,V);
    }

    while(M--){
            int type,X,Y;
    fin>>type>>X>>Y;
    if(type==1){
        fout<<(Query(Y)-Query(X-1))<<"\n";
        }

    else{
        Update(X,-Y);
    }
    }

    return 0;
}