Cod sursa(job #1465948)

Utilizator lflorin29Florin Laiu lflorin29 Data 28 iulie 2015 12:39:07
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;

const int vk = 15003;
int n, m;
int aib[vk];


inline void update (int x, int val){
    for (int i = x; i <= n; i += i & -i)
       aib[i] += val;
}

inline int query (int x){
    int here = 0;
    for (int i = x; i; i -= i & -i)
        here += aib[i];
    return here;
}

int main(){
    ifstream fin ("datorii.in");
    ofstream fout ("datorii.out");
    fin >> n >> m;
    for (int i = 1; i <= n; i++){
            int x;
            fin >> x;
            update(i, x);
    }
    for (; m; --m){
            int cod, d1, d2;
            fin >> cod >> d1 >> d2;
            if (!cod)
                update(d1, - d2);
            else fout << query(d2) - query(d1 - 1) << "\n";
    }
    return 0;
}