// #pragma GCC optimize("no-stack-protector") // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx,tune=native") // #pragma GCC diagnostic ignored "-W" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if __cplusplus >= 201103L #include #include #include #endif // #include // #include // #include using namespace std; // using namespace __gnu_pbds; #define ll long long #define ld long double #define X first #define Y second #define pb push_back #define eb emplace_back #define pii pair #define vint vector #define vpii vector> #define SS stringstream #define PQ priority_queue #define MS(x, v) memset((x), (v), sizeof(x)) #define RZUNI(x) sort(x.begin(), x.end()), x.resize(unique(x.begin(), x.end()) - x.begin()) #define FLH fflush(stdout) #define CPPinput ios_base::sync_with_stdio(0), cin.tie(0) #define FIO(fname) freopen(fname ".in", "r", stdin), freopen(fname ".out", "w", stdout) #define FIN(fname) freopen(fname, "r", stdin) #define FOUT(fname) freopen(fname, "w", stdout) #define tm Ovuvuevuevue #define y1 Enyetuenwuevue #define left Ugbemugbem #define ws Osas #define dec tetteterette #define expl explexplexpl #define data datadetedoto #define YES cout << "YES" << endl #define NO cout << "NO" << endl #define Yes cout << "Yes" << endl #define No cout << "No" << endl #ifdef WEAK #include"/home/edison/Coding/cpp/template/debug.cpp" #define DEB(...) printf(__VA_ARGS__), fflush(stdout) #define WHR() printf("%s: Line %d", __PRETTY_FUNCTION__, __LINE__), fflush(stdout) #define LOG(...) printf("%s: Line %d ", __PRETTY_FUNCTION__, __LINE__), printf(__VA_ARGS__), fflush(stdout) #define DEBUG 1 #define exit(x) cout << "exit code " << x << endl, exit(0) #else #define PDE(...) ; #define DEB(...) ; #define WHR() ; #define LOG(...) ; #define DEBUG 0 #endif #define lowbit(x) ((x) & (-(x))) void JIZZ(string output = ""){ cout << output; exit(0); } const long double PI = 3.14159265358979323846264338327950288; const long double eps = 1e-10; const long long mod = 1e9+7; void solve() { int n; cin >> n; vector c(10, 0); int L = 1, R = n; while (n--) { int x; cin >> x; ++c[x % 10]; } vector> dp(6, vector(1 << 10, 100000000)); dp[0] = vector(1 << 10, 0); for (int i = 1; i <= 5; ++i) { for (int j = 0; j < (1 << 10); ++j) { for (int k = 0; k < (1 << 10); ++k) { if ((k & j) != j) continue; int ban = j ^ k; int sum = 0; for (int z = 0; z < 10; ++z) if (!(ban & (1 << z))) sum += c[z]; dp[i][k] = min(dp[i][k], max(dp[i - 1][j], sum)); } } } cout << *min_element(dp[5].begin(), dp[5].end()) << '\n'; } int main() { CPPinput; int t; cin >> t; while (t--) solve(); }