Задание 27 #11

© СтатГрад 2019−2020 уч. г.
Оптимальное решение 27 #11
n = int(input())
k = 80
a = [0] * k # количество чисел меньше или равно 100
b = [0] * k # количество чисел больше 100
for i in range(n):
    num = int(input())
    ost = num % k
    if num <= 100:
        a[ost] += 1
    else:
        b[ost] += 1
result = 0
for i in range(k):
    result += a[i]*b[i] + b[i]*(b[i]-1)//2
print(result)

Формула 27 #11
s[i] = a[i] + (a[i]+1) + .. + (a[i]+b[i]-1)
s[i] = a[i]*b[i] + (1 + 2 + .. + (b[i]-1))
s[i] = a[i]*b[i] + b[i]*(b[i]-1)//2
выносить за скобку b[i] нельзя, так как (b[i]-1) может быть нечетным 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *