比赛 2026.8.26 评测结果 AAAAAAAAAAAAAEEEEEEEETTTT
题目名称 sort 最终得分 52
用户昵称 rzzakioi 运行时间 3.095 s
代码语言 C++ 内存使用 12.67 MiB
提交时间 2026-08-26 10:13:12
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[2000005],b[2000005],t[2000005];
bool ans[4005][4005];
signed main(){
    freopen("sorttros.in","r",stdin);
    freopen("sorttros.out","w",stdout);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            t[j]=0;
            b[j]=a[j];
        }
        int nxt=n-i+1;
        for(int j=1;j<=n-i;j++){
            t[b[j]]=1;
            while(t[nxt])nxt--;
            if(a[j]>a[j+1]){
                ans[n-i+1][nxt]=1;
                swap(a[j],a[j+1]);
            }
            else{
                if(a[j+1]==n-i+1)ans[n-i+1][n-i]=1;
                else ans[n-i+1][n-i+1]=1;
            }
        }
    }
    int res=0;
    bool flag=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            if(i!=j&&ans[i][j])res++;
            if(i==j&&ans[i][j]&&!flag){
                flag=1;
                res++;
            }
        }
    }
    printf("%lld",res);
    return 0;
}