#include #include #include #include using namespace std; class range {private: struct I{int x;int operator*(){return x;}bool operator!=(I& lhs){return x que) { if(que.size() < 3) { return 0; } int res = 0; while(!que.empty()) { int x = que.top(); que.pop(); int y = que.top(); que.pop(); int z = que.top(); que.pop(); if(z == 0) { break; } res++; que.push(x-1); que.push(y-1); que.push(z-1); } return res; } int main(void) { int t; scanf("%d", &t); for(int times : range(t)) { int n; scanf("%d", &n); map kort; for(int i : range(n)) { int x; scanf("%d", &x); kort[x]++; } priority_queue que; for(auto kv : kort) { que.push(kv.second); } int res = nya(que); printf("%d\n", res); } return 0; }