#include <iostream> #include<algorithm> #include<map> #include<set> #include<vector> using namespace std; int main() { int m, n; while (scanf("%d", &m) != EOF) { // 注意 while 处理多个 case for (int i = 0; i < m; i++) { map<int, map<int, int>>map1; vector<vector<int>> arr1(100, vector<int>(2)); set<int>set1; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &arr1[i][0]); set1.insert(arr1[i][0]); } for (int i = 0; i < n; i++) { scanf("%d", &arr1[i][1]); map1[arr1[i][1]] = {}; } for (int i = 0; i < n; i++) { if (map1[arr1[i][1]].find(arr1[i][0]) != map1[arr1[i][1]].end()) { (map1[arr1[i][1]])[arr1[i][0]]++; } else { (map1[arr1[i][1]]).insert({arr1[i][0], 1}); } } for (auto it = map1.begin(); it != map1.end(); it++) { printf("%d={", it->first); for (auto s1 = set1.begin(); s1 != set1.end(); s1++) { if (it->second.find(*s1) != it->second.end()) printf("%d=%d", *s1, (it->second)[*s1]); else printf("%d=0", *s1); if (next(s1) != set1.end())printf(","); } printf("}\n"); } } } } // 64 位输出请用 printf("%lld")