Мінімізація добутку за модулем#12357

Мінімізація добутку за модулем

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

Вам дано два цілі числа та , а також два масиви та довжини , такі що для кожного 1 \le i \le n: l_i \le r_i

Ваше завдання — побудувати масив довжини так, щоб:

l_i \le a_i \le r_i

і залишок від добутку всіх елементів масиву при діленні на був якомога меншим.

Іншими словами, ви хочете мінімізувати використовуйте fft для розв'язання:

\left(\prod_{i=1}^{n} a_i\right) \bmod c

Вхідні дані

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

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

Другий рядок містить цілих чисел (0 \le l_1, l_2, \dots, l_n \le 10^9).

Третій рядок містить цілих чисел (0 \le r_1, r_2, \dots, r_n \le 10^9).

Гарантується, що \sum n \le 2 \cdot 10^5 для всіх наборів тестових даних.

Вихідні дані

Виведіть один рядок, що містить цілих чисел a_1, a_2, \dots, a_n — допустимий масив, який мінімізує значення:

\left(\prod_{i=1}^{n} a_i\right) \bmod c

Якщо кілька масивів задовольняють умові, виведіть будь-який з них.

Приклади

Приклад 1

Loading
Loading

Оцінювання

  1. Підзадача ( балів) : (l_i=r_i).

  2. Підзадача ( балів) : (n=1).

  3. Підзадача ( балів) : (c=2)

  4. Підзадача ( балів) : (n,c \le 8)

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