对于每一组牛,排序后的序列一定是唯一的。
那么我们就可以得到排序后这一组牛名字之和,组成一个字符串。对这个字符串判重即可。
注意加入多余干扰的字符可以阻止冲突。
#include <bits/stdc++.h>
using namespace std;
map<string, int> m;
int ans = 0;
int main() {
int n; scanf("%d", &n);
while (n--) {
string a[5]; cin >> a[1] >> a[2] >> a[3];
sort(a + 1, a + 4); string s;
s = a[1] + '1' + a[2] + '1' + a[3]; //加入多于字符'1'可以防止冲突
m[s]++; ans = max(ans, m[s]);
}printf("%d\n", ans);
return 0;
}