У каждого клиента 16 переключателей уведомлений: пуши о покупках, письма о кешбэке и так далее. Настройки клиента i записаны числом masks[i] от 0 до 65 535: бит b равен 1, если переключатель b включён.
Различие пары клиентов — число переключателей, которые у них стоят по-разному, то есть число единиц в masks[i] XOR masks[j].
Верните сумму различий по всем парам i < j.
В работе: Аналитик сравнивает, насколько разнятся настройки в сегменте из 100 000 клиентов, прежде чем менять настройки по умолчанию.
Пример 1
masks = [5, 3, 6]
6
101 и 011 — 2 различия, 101 и 110 — 2, 011 и 110 — 2. Итого 6.
Пример 2
masks = [7]
0
Один клиент — пар нет.
Ограничения
- 0 ≤ длина
masks≤ 10⁵ - 0 ≤
masks[i]≤ 65 535 - Лимит — 3 с на тест (3000 мс).
print() и console.log() уходят в консоль.
def total_flag_diff(masks):
Источник: наша задача на данных Альфа-Банка. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.