Cod sursa(job #2214701)

Utilizator vladth11Vlad Haivas vladth11 Data 19 iunie 2018 18:06:43
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define zeros(x) (x ^ (x-1)) & x
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int v[15005],aib[15005],days,number_query,type,a,b,i;
void Update(int x,int quantity){
    int i;

    for(i = x;i <= days;i+=zeros(i)){
        aib[i] -= quantity;
    }
}
int sum(int x){
    int i,sol = 0;
    for(i = x;i > 0;i -= zeros(i)){
        sol += aib[i];
    }
    return sol;
}
int main()
{
    cin >> days >> number_query;
    for(i = 1;i <= days;i++){
        cin >> v[i];
        Update(i,-v[i]);
    }
    for(i = 1;i <= number_query;i++){
        cin >> type;
        cin >> a >> b;
        if(type == 0){
            Update(a,b);
        }
        if(type == 1){
            cout << sum(b) - sum(a-1) << "\n";
        }
    }
    return 0;
}