Submission #1192706

#TimeUsernameProblemLanguageResultExecution timeMemory
1192706warrennMoney (IZhO17_money)C++20
0 / 100
4 ms8008 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+1];
    for(int q=1;q<=n;q++){
        cin>>a[q];
    }

    int ans=0;  
   // cout<<ff.query(1)<<endl;
    for(int q=1;q<=n;q++){
        //cout<<q<<endl;
        ans++;
        int cur=ff.query(1000000)-ff.query(a[q]);
        ff.update(a[q],1);
        while(q<n){
            q++;
            int huh=ff.query(1000000)-ff.query(a[q]);
            if(huh!=cur){
                q--;
                break;
            }
            ff.update(a[q],1);
        }
    }
    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...