AC代码:
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int group[105][10005] = { -1 }; //group[i][j]代表第i组数字j出现的次数,初始化为-1次(作为标识)
int main()
{
int t;
cin >> t;
while (t--)
{
int num[10005] = { 0 };
int zu[1005] = { 0 },len=0;
memset(group, -1, sizeof(group));
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> num[i];
for (int j = 0; j < 105; j++) //只要某一数字出现过,则将所有组的该数字次数初始化为0次
{
group[j][num[i]] = 0;
}
}
for (int i = 0; i < n; i++) //统计并唯一保存组号,并排序
{
int temp;
cin >> temp;
int j = 0;
for (; j <len; j++)
{
if (zu[j] == temp)break;
}
if (j == len)zu[len++] = temp;
group[temp][num[i]]++;
}
sort(zu, zu + len );
for (int i = 0; i < len; i++) //输出
{
cout << zu[i] << "={";
int flag = 0;
for (int j = 0; j < 10005; j++)
{
if (group[zu[i]][j] >=0)
{
if (flag++)cout << ",";
cout << j << "=" << group[zu[i]][j] ;
}
}
cout << "}\n";
}
}
return 0;
}