救命
写了好久没写出来。。。
#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;
}