题意
进行文字的翻译与转换
注意13的倍数仅输出高位,不输出低位的tret,在样例中有体现,和平常的套路不同
源码
#include<algorithm>
using namespace std;
string l[15]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
string h[15]={"tret","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
int main(){
int n;
cin>>n;
getchar();
while(n--){
string str;
getline(cin,str);
if(str[0]<='9' && str[0]>='0'){
//earth
int num=stoi(str);
int x=num/13;
int y=num%13;
if(x==0 && y==0){
cout<<l[y]<<endl;
}else if(x!=0 && y==0){
cout<<h[x]<<endl;
}else if(x!=0 && y!=0){
cout<<h[x]<<" "<<l[y]<<endl;
}else if(x==0 && y!=0){
cout<<l[y]<<endl;
}
}else{
//mars
if(str.find(' ')!=string::npos){
int pos=str.find(' ');
int sum=0;
string temp=str.substr(0,pos);
for(int i=0;i<15;i++){
if(temp==h[i]){
sum+=i*13;
break;
}
}
temp=str.substr(pos+1,str.length()-pos-1);
for(int i=0;i<15;i++){
if(temp==l[i]){
sum+=i;
break;
}
}
cout<<sum<<endl;
}else{
int find=0;
for(int i=0;i<15;i++){
if(str==l[i]){
find=1;
cout<<i<<endl;
break;
}
}
if(find){
continue;
}
for(int i=0;i<15;i++){
if(str==h[i]){
cout<<i*13<<endl;
}
}
}
}
}
return 0;
}