Cod sursa(job #2417947)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 2 mai 2019 14:11:22
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
#define NMAX 15003
#define lsb(x)
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int N, Q, a, Tip;
int Aib [NMAX];
void update (int poz, int val){
    while (poz <= N){
        Aib[poz] += val;
        poz += (poz & (-poz));
    }
}
int query (int poz){
    int S = 0;
    while (poz){
        S += Aib[poz];
        poz -= (poz & (-poz));
    }
    return S;
}
int main (){
    fin >> N >> Q;
    for (int i = 1; i <= N; i ++){
        fin >> a;
        update (i, a);
    }
    for (int i = 0; i < Q; i ++){
        fin >> Tip;
        if (Tip){
            int st, dr;
            fin >> st >> dr;
            fout << query (dr) - query (st - 1) << '\n';
        }
        else{
            int Y, X;
            fin >> X >> Y;
            update (X, -Y);
        }
    }
    return 0;
}