time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Sho has an array aa consisting of nn integers. An operation consists of choosing two distinct indices ii and jj and removing aiai and ajaj from the array.
For example, for the array [2,3,4,2,5], Sho can choose to remove indices 1 and 3. After this operation, the array becomes [3,2,5]. Note that after any operation, the length of the array is reduced by two.
After he made some operations, Sho has an array that has only distinct elements. In addition, he made operations such that the resulting array is the longest possible.
More formally, the array after Sho has made his operations respects these criteria:
- No pairs such that (i<j) and ai=aj exist.
- The length of a is maximized.
Output the length of the final array.
Input
The first line contains a single integer tt (1≤t≤103) — the number of test cases.
The first line of each test case contains a single integer nn (1≤n≤50) — the length of the array.
The second line of each test case contains nn integers aiai (1≤ai≤104) — the elements of the array.
Output
For each test case, output a single integer — the length of the final array. Remember that in the final array, all elements are different, and its length is maximum.
Example
input
4 6 2 2 2 3 3 3 5 9 1 9 9 1 4 15 16 16 15 4 10 100 1000 10000
output
2 1 2 4
Note
For the first test case Sho can perform operations as follows:
- Choose indices 11 and 55 to remove. The array becomes [2,2,2,3,3,3]→[2,2,3,3].
- Choose indices 11 and 44 to remove. The array becomes [2,2,3,3]→[2,3]
The final array has a length of 2, so the answer is 2. It can be proven that Sho cannot obtain an array with a longer length.
For the second test case Sho can perform operations as follows:
- Choose indices 33 and 44 to remove. The array becomes [9,1,9,9,1]→[9,1,1].
- Choose indices 11 and 33 to remove. The array becomes [9,1,1]→[1].
The final array has a length of 1, so the answer is 1. It can be proven that Sho cannot obtain an array with a longer length.
code
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n, a[55] = { 0 }, b[10005] = { 0 }, ans = 0;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a[i];
b[a[i]]++;
if(b[a[i]] == 1)//找到有几种数,->n - ans 即为重复的不要的数
ans++;
}
if((n - ans) % 2)
cout << ans - 1 << endl;
else
cout << ans << endl;
}
return 0;
}