Порубані пари#12439

Порубані пари

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

Для масиву розміру ми кажемо, що пара є тоді й лише тоді, коли:

Вам задано масив розміру .

Для цілого числа (1 \le id \le n) ми будуємо масив b_{id}, виконуючи такий алгоритм:

  1. Ініціалізуйте масив розміру , у якому всі елементи дорівнюють .

  2. Зробіть c_{id} рівним a_1 (тобто покладіть c_{id} = a_1).

  3. Ініціалізуйте i=2.

  4. Виберіть максимальний індекс 1 \le j \le n, для якого c_j = 0, такий, що якщо покласти c_j = a_i, то масив матиме мінімальну кількість пар (зверніть увагу, що потрібно мінімізувати кількість пар у поточному масиві після присвоєння c_j = a_i, у фінальному масиві після завершення алгоритму).

  5. Зробіть c_j рівним a_i (тобто покладіть c_j = a_i).

  6. Якщо i=n, завершіть алгоритм, інакше збільште на і поверніться до кроку .

b_{id} дорівнює отриманому масиву .

Для кожного 1 \le id \le n обчисліть кількість пар у масиві b_{id}.

Вхідні дані

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

Далі йде опис кожного набору входних даних.

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

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

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

Вихідні дані

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

Приклади

Приклад 1

Loading
Loading

Оцінювання

Нехай — сума всіх за всіма наборами входних даних.

  • Підзадача ( балів): a_i \le a_{i-1} для всіх (1 < i \le n)

  • Підзадача ( балів): m \le 500

  • Підзадача ( балів): m \le 1000

  • Підзадача ( балів): m \le 5000

  • Підзадача ( балів): m \le 10^5

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