Kotlin Heroes: Episode 6 |
---|
Закончено |
Подпоследовательность — это последовательность, которую можно получить из другой последовательности путем удаления некоторых элементов, не меняя порядок оставшихся элементов.
Палиндромная последовательность — это последовательность, которая равна перевернутой себе.
Задана последовательность из $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$. Любое целое значение встречается в $$$a$$$ не более двух раз.
Какова длина самой длинной палиндромной подпоследовательности последовательности $$$a$$$?
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.
Затем следуют описания $$$t$$$ наборов входных данных.
В первой строке каждого набора входных данных записано одно целое число $$$n$$$ ($$$1 \le n \le 250\,000$$$) — количество элементов последовательности.
Во второй строке записаны $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le n$$$).
Любое целое значение встречается в $$$a$$$ не более двух раз. Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$250\,000$$$.
На каждый набор входных данных выведите одно целое число — длину самой длинной палиндромной подпоследовательности последовательности $$$a$$$.
5 6 2 1 3 1 5 2 6 1 3 3 4 4 1 1 1 2 1 1 7 4 4 2 5 7 2 3
5 4 1 2 3
Вот самые длинные палиндромные подпоследовательности для наборов входных данных из примера:
Название |
---|