T在点7过不去了
求助求助
#include<bits/stdc++.h>
#define I return
#define LIKE 0
#define LUOGU ;
#define Mod 998244353
using namespace std;
long long n,sum=0,tmp,k=0,num,mugun[200010];
inline int read()
{
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x*=10;
x+=c-'0';
c=getchar();
}
return x*f ;
}
inline void write(int x)
{
if (x < 0) x=~x+1, putchar('-');
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
mugun[i]=read();
sort(mugun+1,mugun+n+1);
for (int i=1;i<=n-1;++i)
{
num=0;
if(mugun[i]==mugun[i+1])
{
k=0;
for(int j=i;;++j,++k)
if(mugun[j]!=mugun[j+1])
break;
++k;
for(int j=1; j<=n; ++j)
{
if(mugun[j]>=mugun[i]*2)
break;
if(j==i||j==i+1)
continue;
if(mugun[i]!=mugun[j])
++num;
}
num*=k*(k-1)/2;
num+=k*(k-1)*(k-2)/6;
i+=k-1;
sum+=num%Mod;
sum%=Mod;
}
}
write(sum%Mod);
I LIKE LUOGU
}