比赛 2026.8.26 评测结果 WWAAAAAAAAAAAAAAAAAAAAAAT
题目名称 sort 最终得分 88
用户昵称 123 运行时间 1.044 s
代码语言 C++ 内存使用 7.74 MiB
提交时间 2026-08-26 10:35:30
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=2e6+10;
int n,b[N],mp[N],a[N],mi[N];
void solve() {
    cin>>n;
    mi[0]=1e9;
    for (int i=1;i<=n;i++) cin>>a[i],mp[a[i]]=i,mi[i]=min(mi[i-1],a[i]);
    long long ans=0;
    int now=0,cnt=0,f1=0,mx1=0,mx2=0;
    for (int i=n;i>=1;i--)
    {
        if (a[i]>mx1) mx2=mx1,mx1=a[i];
        else if (a[i]>mx2) mx2=a[i];
        if (a[i]>now) now=a[i],cnt++;
        b[i]=cnt; 
        f1|=(a[i]<mx2);
    }
    now=0;
    for (int i=n;i>=2;i--)
    {
        int x=mp[i];
        now=max(x,now);
        ans+=b[now+1]+(mp[i-1]<now);
    }
    cout<<ans+f1;
}
int main() {
    freopen("sorttros.in","r",stdin);
    freopen("sorttros.out","w",stdout);
    ios::sync_with_stdio(0),cin.tie(0);
    solve();
    return 0;
}