有错误有超时,新手不知道错哪里了勿喷┭┮﹏┭┮
查看原帖
有错误有超时,新手不知道错哪里了勿喷┭┮﹏┭┮
1420828
kanyo楼主2024/8/15 12:17

救命 写了好久没写出来。。。

#include <bits/stdc++.h>
long long factorial(int n) {
    long long ans = 1;
    if (n==0) return 1;
    while (n) ans*=n,n--;
    return ans;
}
int main() {
    int n;
    std::cin>>n;
    long long P[n],facts[n];
    for (int i = 0; i < n; ++i) {
        std::cin>>P[i];
        facts[i] = factorial(i);
    }

    long long rank = 1;
    for (int i = 0; i < n; ++i) {
        int smaller_count=0;
        for (int j = i+1; j < n; ++j) {
            if (P[j]<P[i]) smaller_count++;
        }
        rank += smaller_count * facts[n-i-1];
    }
    std::cout<<rank%998244353<< std::endl;
    return 0;
}

2024/8/15 12:17
加载中...