10700: Колекція фільмів


Відправити розв'язок

Бали: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

Містер K. I. має дуже велику колекцію відеофільмів. Він розташував свою колекцію у вигляді великого стека. Щоразу, коли він хоче подивитися один із фільмів, він шукає його в цьому стеку і обережно видаляє, переконавшись, що стек не впаде. Після завершення перегляду фільму, він ставить його на верх стеку.

Оскільки стопка фільмів досить велика, йому доводиться стежити за розташуванням кожного фільму. Для кожного фільму достатньо знати кількість фільмів, розміщених над ним, оскільки володіючи цією інформацією, можна обчислити положення фільму в стеку. Кожен фільм ідентифікується за номером, вказаним на коробці фільму.

Вам слід написати програму, яка стежитиме за положенням кожного фільму. Зокрема, кожного разу, коли містер К. І. видаляє коробку з фільмом зі стека, Ваша програма повинна надрукувати кількість фільмів, розміщених над нею, перш ніж вона була видалена.

Формат вхідних даних

Перший рядок містить кількість тестів не більше 100. Далі для кожного тесту:

  • перший рядок містить два цілих числа \(n\) і \(m\) (\(1 ≤ n, m ≤ 100000\)) - кількість фільмів у стосі та кількість запитів.
  • другий рядок містить \(m\) цілих чисел \(a_1, ..., a_m\) (\(1 ≤ a_i ≤ n\)), що вказують на номери фільмів, які містер K. I. хоче переглянути.

Для простоти вважаємо, що спочатку фільми в стеку розташовані у порядку їх номерів \(1, 2, ..., n\), причому фільм з номером 1 знаходиться на верху стеку.

Формат вихідних даних

Для кожного тесту вивести один рядок з \(m\) числами, де \(i\)-е число вказує на кількість коробок розташованих над коробкою з міткою \(a_i\) перед тим як вона переміститься на верх стека.

Зверніть увагу, що після кожного запиту \(a_i\) коробка з позначкою \(a_i\) поміщається на верх стеку

Приклад вхідних даних

2
3 3
3 1 1
5 3
4 4 5

Приклад вихідних даних

2 1 0
3 0 4

Коментарі

Ще немає коментарів.