#include <bits/stdc++.h>
using namespace std;
struct Node{
int x;
int cnt;
}node[300];
vector<string> vec;
bool cmp(Node x,Node y){
if(x.cnt!=y.cnt)return x.cnt>y.cnt;
else return x.x<y.x;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
string s;
cin>>s;
vec.push_back(s);
for(int j=0;j<s.size();j+=2){
int x=0;
int k1,k2;
if(s[j]>='0' && s[j]<='9')k1=s[j]-'0';
else k1=s[j]-'A'+10;
if(s[j+1]>='0' && s[j+1]<='9')k2=s[j+1]-'0';
else k2=s[j+1]-'A'+10;
x=k1*16+k2;
node[x].x=x;
node[x].cnt++;
}
}
sort(node,node+280,cmp);
for(int i=0;i<16;i++){
int k=node[i].x;
int k1=k/16;
int k2=k%16;
if(k1>=0 && k1<=9)cout<<k1;
else cout<<char(k1-10+'A');
if(k2>=0 && k2<=9)cout<<k2;
else cout<<char(k2-10+'A');
}
cout<<endl;
for(int i=0;n;i++){
for(int j=0;j<vec[i].size();j+=2){
int x=0;
int k1,k2;
if(vec[i][j]>='0' && vec[i][j]<='9')k1=vec[i][j]-'0';
else k1=vec[i][j]-'A'+10;
if(vec[i][j+1]>='0' && vec[i][j+1]<='9')k1=vec[i][j+1]-'0';
else k1=vec[i][j+1]-'A'+10;
x=k1*16+k2;
int minn=1e9,minid=0;
for(int k=0;k<16;k++){
if(minn>abs(x-node[k].x)){
minn=abs(x-node[k].x);
minid=k;
}
}
if(minid<9)cout<<minid;
else cout<<char(minid-10+'A');
}
cout<<endl;
}
return 0;
}
怎么都RE了呀?求助