虽然使用了 STL。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,s=0;
vector<int> v;
int a[1000005];
int mod=998244353;
signed main()
{
v.push_back(-1e18);
v.push_back(1e18);
cin>>n;
a[1]=1;
for (int i=2;i<=n;i++)
{
a[i]=a[i-1]*i;
a[i]%=mod;
}
for (int i=1;i<=n;i++)
{
cin>>x;
int y=lower_bound(v.begin(),v.end(),x)-v.begin();
v.insert(lower_bound(v.begin(),v.end(),x),x);
s+=(a[n-i]*(x-y))%mod;
s%=mod;
}
cout<<s+1;
return 0;
}