#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
int a[200010],temp[200010];
long long c[200010];
long long an=0,zl=0;
int max1=-100;
long long fac(int m)
{
long long ans=1;
for(int i=1;i<=m;i++) ans=ans*i%mod;
return ans;
}
long long C(int n,int m)
{
c[n]=fac(n)/(fac(n-m)*fac(m));
return c[n];
}
int main()
{
int n,last;cin>>n;
bool same=1;
for(int i=1;i<=n;i++)
{
int k;cin>>k;
a[k]++;
max1=max(k,max1);
if(i==1) last=k;
else
{
if(last!=k) same=0;
}
}
long long qzh=0;
for(int i=1;i<=200010;i++)
{
qzh+=a[i];
temp[i]=qzh;
}
if(same==0){
for(int i=1;i<=max1;i++)
{
if(temp[i*2-1]-2<0) zl=0;
else
{
if(a[i]>=3){
zl=C(a[i],2)%mod*(temp[i*2-1]-a[i])%mod+1;
}
else{
zl=C(a[i],2)%mod*(temp[i*2-1]-2)%mod;
}
}
an+=zl;
}
}
else{
an=C(n,3)%mod;
}
cout<<an;
return 0;
}