Ctrl K

Каждому числу — его удвоение

Средняя
Дан массив целых чисел values чётной длины. Можно ли переставить его элементы так, чтобы они разбились на соседние пары, в каждой из которых второе число ровно вдвое больше первого? Формально нужно, чтобы values[2i + 1] == 2 · values[2i] для всех 0 ≤ i < len(values) / 2. Верните True, если такая перестановка существует, и False иначе.
Пример 1
values=[6, -2, 3, -4] → True

Пары (3, 6) и (−2, −4): порядок, например, [3, 6, -2, -4].

Пример 2
values=[1, 2, 2, 8] → False

Для 8 нужна пара 4 или 16, а их нет.

Пример 3
values=[0, 5, 0, 10] → True
Ограничения
  • 2 ≤ len(values) ≤ 10⁵
  • len(values) чётна
  • -10⁵ ≤ values[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяРазложить карты на наборы подряд СредняяМетки вразнобой СредняяВыбор с лимитом по тегам СредняяРазложить на ряды подряд Средняя
загружаем Python…
Вход
values=[6, -2, 3, -4]
Ожидается
True

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 115 тестов на сервере, включая скрытые.