比赛 2026.8.26 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAT
题目名称 sort 最终得分 96
用户昵称 郑霁桓 运行时间 1.094 s
代码语言 C++ 内存使用 7.01 MiB
提交时间 2026-08-26 12:27:36
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[2000006],b[2000006],lt,op;
long long as;
priority_queue<int>q;
int main(){
    freopen("sorttros.in","r",stdin);
    freopen("sorttros.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n,as=n,op=1;
    for(int i=1;i<=n;i++) cin>>a[i],q.push(-i),b[a[i]]=i;
    for(int i=n;i>=1;i--) if(a[i]>lt) as+=max(0,n-a[i]-1),lt=a[i];
    for(int i=n;i>=1;i--){
        int p1=-q.top();
        if(p1==b[i]){
            q.pop();
            continue;
        }
        q.pop();
        if(-q.top()!=b[i]){
            op=0;
            break;
        }
        q.pop();
        q.push(-p1);
    }
    if(op) as--;
    cout<<as;
    return 0;
}