Перетворення масиву за парністю від Насера#12356

Перетворення масиву за парністю від Насера

2 секунди
256 мегабайтів
Складна

Нассер надає вам масив з цілих чисел та ціле число .

За одну операцію ви можете вибрати суцільний підмасив, де всі елементи мають одну і ту ж парність (всі парні або всі непарні), і збільшити всі елементи в цьому підмасиві на .

use bit tree

Ваше завдання полягає в тому, щоб знайти мінімальну кількість операцій, необхідних для того, щоб усі елементи стали рівними . Якщо це неможливо, поверніть .

Вхідні дані

Перший рядок містить одне ціле число (1 \le t \le 10^4) — кількість тестів.

Перший рядок кожного тесту містить два цілих числа (1 \le n \le 2 \cdot 10^5, 1 \le x \le 10^9) — розмір масиву та цільове значення.

Другий рядок містить цілих чисел a_1, a_2, \ldots, a_n (1 \le a_i \le 10^9) — елементи масиву.

Гарантується, що сума всіх по всім тестам не перевищує 2 \cdot 10^5.

Вихідні дані

Для кожного тесту виведіть одне ціле число — мінімальну кількість операцій або , якщо зробити всі елементи рівними неможливо.

Приклади

Приклад 1

Loading
Loading

Примітка

У першому тестовому випадку a=[1,3,2] та x=4.

  • Збільшимо a_1 двічі: [1,3,2] \to [2,3,2] \to [3,3,2]

  • Збільшимо a_3 один раз: [3,3,2] \to [3,3,3]

  • Збільшуємо увесь масив (все непарні): [3,3,3] \to [4,4,4]

  • Разом: 4 операції

Оцінювання

  1. Підзадача ( балів) : (1 \le \sum n \le 10)

  2. Підзадача ( балів) : (1 \le \sum n \le 100,1 \le x \le 10^{6})

  3. Підзадача ( балів) : (1 \le \sum n \le 5000,1 \le x \le 10^{9})

  4. Підзадача ( балів) : Без додаткових обмежень.