样例都对,但数据全WA...
#include<bits/stdc++.h>
using namespace std;
int n;
int a[200005];
int x,p;
long long sum=0;
int main(){
cin>>n;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1);
if(a[1]==a[n]) {
sum=n*(n-1);
sum=sum%998244353;
sum=sum*(n-2);
sum=sum%9982444353;
sum=sum/6;
cout<<sum%998244353;
return 0;
}
for(int i=1;i<=n-1;i++){
if(a[i]==a[i+1]) {
for(int j=1;j<=n;j++)
if(a[j]<2*a[i] && a[j]!=a[i]) sum++,sum=sum%998244353;
}
}
for(int i=1;i<=n-2;i++)
if(a[i]==a[i+1] && a[i+1]==a[i+2] && i>p+x-1){
x=0,p=i;
for(int j=i;j<=n;j++)
if(a[j]==a[i]) x++;
else break;
sum+=x*(x-1)*(x-2)/6;
}
cout<<sum%998244353;
return 0;
}
求助大佬!帮忙改一下
(顺便优化一下吧,有3个点TLE了)