#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;
}