http://bailian.openjudge.cn/practice/2798/
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
int i,n;
string s[25];
for(i=0;i<25;i++)
s[i]=" ";
s[0]="0000";
s[1]="0001";
s[2]="0010";
s[3]="0011";
s[4]="0100";
s[5]="0101";
s[6]="0110";
s[7]="0111";
s[8]="1000";
s[9]="1001";
i='A'-'0';
s[i++]="1010";
s[i++]="1011";
s[i++]="1100";
s[i++]="1101";
s[i++]="1110";
s[i++]="1111";
cin>>n;
while(n--){
char a[10001];
cin>>a;
string str="";
int num = 0;
int len = strlen(a);
switch(len%4){
case 1:
str=str+"000"+a[0];
num=1;
break;
case 2:
str=str+"00"+a[0]+a[1];
num=2;
break;
case 3:
str=str+"0"+a[0]+a[1]+a[2];
num=3;
break;
case 4:
str=str+a[0]+a[1]+a[2]+a[3];
num=4;
break;
}
for(i=0;i<25;i++){
if(s[i]==str){
cout<<(char)(i+'0');
break;
}
}
for(i=num;i+3<len;i+=4){
str="";
for(int j=i;j<i+4;j++){
str+=a[j];
}
for(int k=0;k<25;k++){
if(s[k]==str){
cout<<(char)(k+'0');
break;
}
}
}
cout<<endl;
}
return 0;
}