Cod sursa(job #2573503)

Utilizator MariusblockMoga Marius-Ioan Mariusblock Data 5 martie 2020 17:54:17
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
#define MOD 666013

using namespace std;

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

int aib[15005];
int n,m;

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

int sum(int poz){
    int i,rez = 0;
    for(i = poz; i >= 1; i-= (i&-i)){
        rez += aib[i];
    }
    return rez;
}

int query(int a,int b){
    return sum(b) - sum(a-1);
}

int main()
{
    int i,aux,p,a,b;
    fin>>n>>m;
    for(i = 1; i <= n; i++){
        fin>>aux;
        add(aux,i);
    }
    for(i = 1; i <= m; i++){
        fin>>p>>a>>b;
        if(p == 0){
            add(-b,a);
        }else if(p == 1){
            fout<<query(a,b)<<'\n';
        }
    }
    return 0;
}