Cod sursa(job #2753164)

Utilizator davalxdavid alex davalx Data 21 mai 2021 12:30:10
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");

const int N=15000;
const int L=16;

int aib[N+1],n;

void act(int poz, int val) {
    while (poz <= n) {
        aib[poz] += val;
        poz += (poz & (-poz));
    }
}

int sum(int p){
    int s=0;
    while(p!=0){
        s+=aib[p];
        p-=(p&(-p));
    }
    return s;
}

int main(){

    int m;
    in>>n>>m;
    for(int i=1;i<=n;i++){
        int x;
        in>>x;
        act(i,x,1);
    }
    for (int i=0;i<m;i++){
        int tip;
        in>>tip;
        if (tip==0){
            int t,v;
            in>>t>>v;
            act(t,v,-1);
        }
        else{
            int p, q;
            in>>p>>q;
            out<<sum(q)-sum(p-1)<<"\n";
        }
    }
    return 0;
}