#include<iostream> #include<string> // #include<vector> using namespace std; string find_five(string str); int main() { string a, b, max_five; cin >> a >> b; int flag = 1; // 标志辅助变量 switch (b.length()) { case 1: if ((*(a.rbegin()) - '0') > stoi(b)) { cout << "YES"; } else { cout << "NO"; } break; case 2: for (int i = a.length() - 1; i > 0; i--) { if (a[i] == a[i - 1] && a[i] > b[0]) { printf("YES"); flag = 0; break; } } if (flag) { printf("NO"); } break; case 3: for (int i = a.length() - 1; i > 1; i--) { if (a[i] == a[i - 1] && a[i - 1] == a[i - 2] && a[i] > b[0]) { printf("YES"); flag = 0; break; } } if (flag) { printf("NO"); } break; case 4: for (int i = a.length() - 1; i > 2; i--) { if (a[i] == a[i - 1] && a[i - 1] == a[i - 2] && a[i - 2] == a[i - 3] && a[i] > b[0]) { printf("YES"); flag = 0; break; } } if (flag) { printf("NO"); } break; case 5: if(b == "56789"){ printf("NO"); }else{ // 先找出手中最大的五张 max_five = find_five(a); if(max_five > b){ printf("YES"); }else{ printf("NO"); } } break; default: cout << "error!"; break; } return 0; } string find_five(string str){ int index = 0; string num, max_five; // num记录 牌a有哪几种数字 num = str.substr(0, 1); for(int i = 1; i < str.length(); i++){ if(str[i] != str[index]){ index = i; num.push_back(str[i]); } } for(int i = num.length() - 4; i > 0; i--){ string wuzhang = num.substr(num.length() - 5, 5); if(wuzhang == "56789"){ max_five = wuzhang; break; }else if(wuzhang == "45678"){ max_five = wuzhang; break; }else if(wuzhang == "34567"){ max_five = wuzhang; break; }else if(wuzhang == "23456"){ max_five = wuzhang; break; }else if(wuzhang == "12345"){ max_five = wuzhang; break; } } // cout << max_five << endl; return max_five; }