#include<bits/stdc++.h>
using namespace std;
const int BUC = 1;
int a[300005];
int aib[300005],cate;
vector<pair<int,int>> v[10005];
int scade[10005];
int qry(int poz)
{
    poz++;
    int aux=0;
    for(int i=poz;i>0;i-=(i&(-i)))
        aux+=aib[i];
    return aux;
}
void upd(int poz, int newv)
{
    poz++;
    for(int i=poz;i<=cate;i+=(i&(-i)))
        aib[i]+=newv;
}
void inicjuj(int n, int k, int *D)
{
    cate=n;
    for(int i=0;i<=n;i++)
        aib[i]=0;
    for(int i=0;i<n;i++)
    {
        a[i] = max(0, k - D[i]);
        if(a[i]==0) upd(i,+1);
    }
    for(int i=0;i<n;i+=BUC)
    {
        for(int j=i;j<min(n,i+BUC);j++)
            if(a[j]>0)
                v[i/BUC].push_back({a[j],j});
        sort(v[i/BUC].begin(),v[i/BUC].end());
    }
}
void podlej(int le, int ri)
{
    vector<pair<int,int>> newv;
    for(auto x:v[le/BUC])
    {
        if(le <= x.second && ri <= x.second)
        {
            if(x.first-1 == 0)
                upd(x.second, +1);
            else
                newv.push_back({x.first-1,x.second});
        }
        else
            newv.push_back(x);
    }
    v[le/BUC] = newv;
    if(le/BUC != ri/BUC)
    {
        newv.clear();
        for(auto x:v[ri/BUC])
        {
            if(le <= x.second && ri <= x.second)
            {
                if(x.first-1 == 0)
                    upd(x.second, +1);
                else
                    newv.push_back({x.first-1,x.second});
            }
            else
                newv.push_back(x);
        }
        v[ri/BUC] = newv;
    }
    for(int b=le/BUC+1;b<ri/BUC;b++)
    {
        newv.clear();
        for(auto x:v[b])
        {
            if(le <= x.second && ri <= x.second)
            {
                if(x.first-1 == 0)
                    upd(x.second, +1);
                else
                    newv.push_back({x.first-1,x.second});
            }
            else
                newv.push_back(x);
        }
        v[b] = newv;
    }
}
int dojrzale(int le, int ri)
{
    return qry(ri)-qry(le-1);
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |