#include<bits/stdc++.h>
using namespace std;
int idx[26]={-1,0,-1,1,2,3,4,5,-1,6,7,8,-1,9,10,-1,11,12,13,14,15,16,17,18,19,20};
//BDEFGHJKLNOQRSTUVWXYZ
bool isd(char x){return ('0'<=x && x<='9');}
bool isa(char x){return ('A'<=x && x<='Z');}
bool is_bad_ch(char x){return (x=='A' || x=='C' || x=='M' || x=='I' || x=='P');}
bool no_this_car(string x){
if((isd(x[3]) && isa(x[4])) || (isa(x[3]) && isd(x[4]))) return 1;
if(isa(x[3]) && isa(x[4])){
for(int i=0;i<=4;i++) if(is_bad_ch(x[i])) return 1;
}
return 0;
}
int id(string x){
int res=0;
if(isd(x[3])){
for(int i=0;i<=2;i++) res=res*26+(x[i]-'A');
for(int i=3;i<7;i++) res=res*10+(x[i]-'0');
return res;
}
else{
for(int i=0;i<=4;i++) res=res*21+idx[(x[i]-'A')];
for(int i=5;i<7;i++) res=res*10+(x[i]-'0');
res+=26*26*26*10*10*10*10;
return res;
}
}
int main(){
string a,b;
int c;
while(cin>>a>>b>>c){
if(a=="*" && b=="*" && c==0) return 0;
if(no_this_car(b)){
puts("N");
continue;
}
if(id(b)-id(a)<=c && id(b)>id(a)) puts("Y");
else puts("N");
}
return 0;
}
题目链接,为何这样?