Cod sursa(job #1425353)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 27 aprilie 2015 12:54:48
Problema Datorii Scor 100
Compilator cpp Status done
Runda pregatire-lot-aib Marime 0.85 kb
#include <fstream>
#define DIM 16000
using namespace std;

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

int N, M, i, j, k, ok, minim;
int aib[DIM], cod, X, Y;

void Update(int A, int B){
    for(A = A; A <= N; A += (A&(-A)))
        aib[A] += B;
    return;
}

int Query(int A){
    int val = 0;
    for(A = A; A >= 1; A -= (A&(-A)))
        val += aib[A];
    return val;
}

void SetUp(){
    fin >> N >> M;
    for(i = 1; i <= N; i ++){
        fin >> X;
        Update(i, X);
    }
    return;
}

void CodeExpert(){
    for(i = 1; i <= M; i ++){
        fin >> cod >> X >> Y;
        switch(cod)
        {
            case 0:{Update(X,-Y);break;}
            case 1:{fout << Query(Y) - Query(X-1) << "\n";break;}
        }
    }
    return;
}

int main(){
    SetUp();
    CodeExpert();
    return 0;
}