Submission #1192993

#TimeUsernameProblemLanguageResultExecution timeMemory
1192993warrennMoney (IZhO17_money)C++20
0 / 100
4 ms8004 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long

struct fenwick{
    vector<int>bit;
    fenwick(){
        bit=vector<int>(1000002,0);
    }

    void update(int x,int val){
        for(int q=x;q<=1000000;q+=(q&-q)){
            bit[q]+=val;
        }
    }
    int query(int idx){
    //    cout<<"idx"<<endl;
        int res=0;
        for(int u=idx;u>0;u-=(u&-u)){
            res+=bit[u];
        }
        return res;
    }
};

signed main(){
    int n;
    cin>>n;
    fenwick ff;
    int a[n+2];
    for(int q=1;q<=n;q++){
        cin>>a[q];
    }
    a[n+1]=1e15;

    int ans=0;  
   // cout<<ff.query(1)<<endl;
    for(int q=1;q<=n;q++){
        //cout<<q<<endl;
        ans++;
        ff.update(a[q],1);
        q++;
        while(q<=n && a[q]>a[q-1] && ff.query(a[q])-ff.query(a[q-1])==0){
            ff.update(a[q],1);
            q++;
        }
        if(q==n+1)break;
    }
    cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...