CF BUDDY
← Problems·

1488E · Palindromic Doubles

2200 · *special, data structures, dp

Problem: A subsequence is a sequence that can be obtained from another sequence by removing some elements without changing the order of the remaining elements.

A palindromic sequence is a sequence that is equal to the reverse of itself.

You are given a sequence of nn integers a1,a2,,ana_1, a_2, \dots, a_n. Any integer value appears in aa no more than twice.

What is the length of the longest palindromic subsequence of sequence aa?

Input Format: The first line contains a single integer tt (1t10001 \le t \le 1000) — the number of testcases.

Then the descriptions of tt testcases follow.

The first line of each testcase contains a single integer nn (1n2500001 \le n \le 250\,000) — the number of elements in the sequence.

The second line of each testcase contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ain1 \le a_i \le n).

Any integer value appears in aa no more than twice. The sum of nn over all testcases doesn't exceed 250000250\,000.

Output Format: For each testcase print a single integer — the length of the longest palindromic subsequence of sequence aa.

Note: Here are the longest palindromic subsequences for the example testcases:

  • 2 1 3 1 5 2
  • 1 3 3 4 4 1 or 1 3 3 4 4 1
  • 1
  • 1 1
  • 4 4 2 5 7 2 3 or 4 4 2 5 7 2 3

Sample Cases

Case 1

Input

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

Output

5
4
1
2
3

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback