Cod sursa(job #2221930)

Utilizator inquisitorAnders inquisitor Data 16 iulie 2018 10:03:32
Problema Arbori indexati binar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#import<fstream>
int N,o,t,x,y,B['썐'];

int U(int p){for(;N/p;p+=p&-p)B[p]+=x;}

int Q(int p){int s=0;for(;p;p&=~-p)s+=B[p];return s;}

int main(){

    std::ifstream f("aib.in");
    std::ofstream g("aib.out");

    for(f>>N>>o;N/++y;U(y))f>>x;

    for(;o--;)
    {
        f>>t>>y;

        int v=y,i=0,s=1,z=-1;

        for(;N/s;s*=2);

        for(;s;s/=2)

             if(i + s <= N && v >= B[i + s])

                (v -= B[i += s]) || (z = i, s = 0);

        t<2&&f>>x;

        t?g<<(t&1?Q(x)-Q(y-1):z)<<'\n',0:U(y);
    }
}