#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
#include <algorithm>
#include <string>
using namespace std;
#define N 500
string str[N];
map<string,int> m;
int main () {
char s[N];
int n; cin >> n;
getchar();
gets(s);
while (n--) {
int k = 0;
while (gets(s)) {
if (s[0] == '\0') break;
str[k++] = s;
}
int Min = 10000, Max = 0;
for (int i = 0; i < k; i++) {
if (Min > str[i].size()) Min = str[i].size();
if (Max < str[i].size()) Max = str[i].size();
}
int len = Min + Max;
map<string,int> ::iterator it;
m.clear();
for (int i = 0; i < k;i++)
for (int j = i+1; j < k;j++) {
string temp = str[i] + str[j];
if (temp.size() == len) {
it = m.find(temp);
if (it != m.end()) m[temp]++;
else m[temp] = 1;
}
temp = str[j] + str[i];
if (temp.size() == len) {
it = m.find(temp);
if (it != m.end()) m[temp]++;
else m[temp] = 1;
}
}
int flag = 0;
string ans;
for (it = m.begin(); it != m.end(); it++) {
if (it->second > flag) {
flag = it->second;
ans = it->first;
}
}
cout << ans << endl;
if (n) printf("\n");
}
return 0;
}
UVA 10132
最新推荐文章于 2018-11-28 17:43:00 发布