|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>һ<EFBFBD><D2BB>16<31><36><EFBFBD>ƵĻҽ<C4BB>תΪһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
int toDec(char a, char b) {
|
|
|
|
|
int res = 0;
|
|
|
|
|
if (a >= '0' && a <= '9')
|
|
|
|
|
res += (a - '0') * 16;
|
|
|
|
|
else if (a >= 'A' && a <= 'F')
|
|
|
|
|
res += (a - 'A' + 10) * 16;
|
|
|
|
|
|
|
|
|
|
if (b >= '0' && b <= '9')
|
|
|
|
|
res += b - '0';
|
|
|
|
|
else if (b >= 'A' && b <= 'F')
|
|
|
|
|
res += b - 'A' + 10;
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>һ<EFBFBD><D2BB>ʮ<EFBFBD><CAAE><EFBFBD>ƵĻҽ<C4BB>ֵ[0,255]ת<><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,FF]
|
|
|
|
|
string toHex(int x) {
|
|
|
|
|
char c1, c2;
|
|
|
|
|
int a = x % 16; // 0 ~ 15
|
|
|
|
|
int b = x / 16; //
|
|
|
|
|
if (a >= 10)
|
|
|
|
|
c1 = 'A' + a - 10;
|
|
|
|
|
else
|
|
|
|
|
c1 = '0' + a;
|
|
|
|
|
if (b >= 10)
|
|
|
|
|
c2 = 'A' + b - 10;
|
|
|
|
|
else
|
|
|
|
|
c2 = '0' + b;
|
|
|
|
|
|
|
|
|
|
string res;
|
|
|
|
|
res.push_back(c2);
|
|
|
|
|
res.push_back(c1);
|
|
|
|
|
return res;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const int N = 256;
|
|
|
|
|
//Ͱ
|
|
|
|
|
int bucket[N];//0 ~ 255
|
|
|
|
|
|
|
|
|
|
//ԭʼ<D4AD><CABC><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
string q[30];
|
|
|
|
|
|
|
|
|
|
//<2F>ṹ<EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>еĻҽװ<D2BD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
|
|
|
|
struct Node {
|
|
|
|
|
int id;//<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
|
|
|
|
int cnt;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
const bool operator<(const Node &b) const {
|
|
|
|
|
if (cnt == b.cnt)
|
|
|
|
|
return id < b.id;
|
|
|
|
|
return cnt > b.cnt;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
vector<Node> vec;//<2F><>Ҫ<EFBFBD><D2AA>bucket<65><74>װ<EFBFBD><D7B0>Node<64>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
freopen("D://HuiJie.txt", "r", stdin);
|
|
|
|
|
|
|
|
|
|
int n;
|
|
|
|
|
cin >> n;//<2F><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
for (int i = 1; i <= n; i++) {
|
|
|
|
|
string s;
|
|
|
|
|
cin >> s;
|
|
|
|
|
q[i] = s;//<2F><><EFBFBD><EFBFBD>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (int j = 0; j < s.size(); j += 2) {
|
|
|
|
|
char a = s[j], b = s[j + 1];
|
|
|
|
|
int k = toDec(a, b); //<2F>ҽ<D2BD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
bucket[k]++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i <= 255; i++)
|
|
|
|
|
vec.push_back({i, bucket[i]});
|
|
|
|
|
sort(vec.begin(), vec.end());
|
|
|
|
|
|
|
|
|
|
//ǰʮ<C7B0><CAAE>λ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
|
|
|
|
|
for (int i = 0; i < min(16, (int)vec.size()); i++)
|
|
|
|
|
cout << toHex(vec[i].id) ;
|
|
|
|
|
cout << endl;
|
|
|
|
|
|
|
|
|
|
//<2F>ڶ<EFBFBD><DAB6>ʵĻش<C4BB>
|
|
|
|
|
for (int i = 1; i <= n; i++) { //ö<><C3B6>ÿ<EFBFBD><C3BF>ԭʼ<D4AD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ÿ2<C3BF><32>һ<EFBFBD>飬<EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD>
|
|
|
|
|
for (int j = 0; j < q[1].size(); j += 2) {
|
|
|
|
|
char a = q[i][j], b = q[i][j + 1]; //0 F ,0 F
|
|
|
|
|
int x = toDec(a, b);
|
|
|
|
|
int mi = INT_MAX;
|
|
|
|
|
int mi_p = 0;
|
|
|
|
|
for (int k = 0; k < min(16, (int)vec.size()); k++) { //16<31><36><EFBFBD>з<EFBFBD><D0B7>յģ<D5B5><C4A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>û<EFBFBD><C3BB>16<31><36><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>
|
|
|
|
|
if (mi > abs(vec[k].id - x)) {
|
|
|
|
|
mi = abs(vec[k].id - x);
|
|
|
|
|
mi_p = k;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cout << toHex(mi_p)[1];
|
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|