qwq,这题python是不是一定超时,我得30分
查看原帖
qwq,这题python是不是一定超时,我得30分
997364
sjeozq楼主2023/10/6 21:47
Max = 0
q = int(10e9 + 7)
n = int(input())
a = [0] * (n + 1)
b = [0] * (5 * 1000 + 1)
count = 0
for i in range(1, n + 1):
    a[i] = int(input())
    b[a[i]] += 1
    Max = max(Max, a[i])
for i in range(2, Max + 1):
    if b[i] >= 2:
        for j in range(1, int(i / 2) + 1):
            if j == i - j:
                if b[j] >= 2:
                    count += int(b[j] * (b[j] - 1) / 2 % q * b[i] * (b[i] - 1) / 2 % q)
                    count = count % q
            else:
                if b[j] >= 1 and b[i - j] >= 1:
                    count += int(b[j] * b[i - j] % q * b[i] * (b[i] - 1) / 2 % q)
                    count = count % q
print(count%q)

2023/10/6 21:47
加载中...