求救!!!
查看原帖
求救!!!
199410
VonLan233楼主2020/7/26 16:05

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
}
2020/7/26 16:05
加载中...