int main(){ char s[20010]; gets(s); int i=strlen(s)-1; //最後の文字が2,3,4かチェック if(s[i]!='2'&&s[i]!='3'&&s[i]!='4'){ puts("NO"); return 0; } i--; //3,4,5の繰り返しを飛ばす while(i>=0&&(s[i]=='3'||s[i]=='4'||s[i]=='5'))i--; //先頭まで来てたらダメ if(i<0){ puts("NO"); return 0; } //次が1なら前者のパターン if(i==0&&s[i]=='1'){ puts("YES"); return 0; } //次が7,8なら後者のパターン if(s[i]=='7'||s[i]=='8'){ i--; //6,7の繰り返しを飛ばす while(i>=0&&(s[i]=='6'||s[i]=='7'))i--; //先頭まで来てたらOK if(i<0)puts("YES"); else puts("NO"); return 0; } //どちらでもなければだめ puts("NO"); }