全TLE,求助大佬们
查看原帖
全TLE,求助大佬们
426120
limleep楼主2020/12/17 19:48
#include<stdio.h>
const int mod = 1e9 + 7;
int CombinationNumber(int x)
{
	return x * (x - 1) / 2;
}
int main()
{
	int n, a;
	int len[5000] = { 0, };
	int sum=0;
	scanf("%d", &n);
	int max = 0, min = 5000;
	for (int i = 0; i < n; ++i)
	{
		scanf("%d", &a);
		len[a]++;
		if (a > max) max = a;
		if (a < min) min = a;
	}
	for (int i = min + 1; i <= max; ++i)
	{
		if (len[i] >= 2)
		{
			for (int j = min; j <= i / 2; ++j)
			{
				if (len[j] > 0 && len[i - j] > 0)
					if (i = 2 * j)
						sum =(sum+ ((CombinationNumber(len[i])%mod)  * (CombinationNumber(len[j]) % mod)))%mod;
					else sum =(sum+ (CombinationNumber(len[i]) % mod) * (len[j] % mod) * (len[i - j] % mod))%mod;

				
			}
		}
	}
	printf("%d", sum);
	return 0;

}

如题

2020/12/17 19:48
加载中...