记录编号 618329 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAA
题目名称 sort 最终得分 100
用户昵称 Gravatar终焉折枝 是否通过 通过
代码语言 C++ 运行时间 0.985 s
提交时间 2026-08-28 22:57:36 内存使用 5.70 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#ifdef LOCAL
#include<algo/debug.h>
#else
#define debug(...) 42
#endif

using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vi  = vector<int>;
using vll = vector<ll>;

#define pb emplace_back
#define mk make_pair
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) (int)((x).size())
#define ciallo(x) cerr << (x) << '\n';

template <typename T, typename U>
inline bool chmin(T& a, const U& b){return (b < a ? a = b, true : false);}
template <typename T, typename U>
inline bool chmax(T& a, const U& b){return (a < b ? a = b, true : false);}


const int N = 2 * 1e6 + 5;
int n;
int a[N], pos[N];
ll ans = 0;

void solve(){
    cin >> n;
    for(int i = 1;i <= n;i ++){
        cin >> a[i];
        pos[a[i]] = i;
    }
    int mx = -1;
    ans = n - 1;
    for(int i = n;i >= 1;i --){
        if(a[i] > mx){
            mx = a[i];
            ans += max(0, n - a[i] - 1);
        }
    }
    bool flag = 1;
    for(int i = 1;i <= n;i ++){
        if(pos[i] > n - i + 2){
            flag = false;
            break;
        }
    }
    if(!flag) ans ++;
    cout << ans << '\n';
}

int main(){
    #ifdef LOCAL
    //freopen("test.txt", "r", stdin);
    #endif
    cin.tie(0) -> sync_with_stdio(0);
    int T = 1;
    // cin >> T;
    while(T --) solve();
    #ifdef LOCAL
        cout << "Time: " << 1.0 * clock() / CLOCKS_PER_SEC << " s\n ";
    #endif
    return 0;
}