Submission #35275

#TimeUsernameProblemLanguageResultExecution timeMemory
35275dqhungdlMoney (IZhO17_money)C++14
0 / 100
0 ms9988 KiB
#include <bits/stdc++.h>
using namespace std;

int n,a[1000005],tree[1000005];

void Update(int idx,int data)
{
    while(idx<=1e6)
    {
        tree[idx]+=data;
        idx+=idx&-idx;
    }
}

int Query(int idx)
{
    int rs=0;
    while(idx>0)
    {
        rs+=tree[idx];
        idx-=idx&-idx;
    }
    return rs;
}

int main()
{
    ios_base::sync_with_stdio(false);
    //freopen("TEST.INP","r",stdin);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        Update(a[i],1);
    }
    int res=1,Count=0;
    for(int i=2;i<=n;i++)
    {
        Update(a[i],-1);
        if(a[i]<a[i-1]||(Query(a[i])-Query(a[i-1])>0&&Count==1))
        {
            res++;
            Count=0;
        }
        else
        if(Query(a[i])-Query(a[i-1])>0)
            Count++;
    }
    cout<<res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...