Kazun の競プロ記録

競技プログラミングに関する様々な話題を執筆します.

AtCoder Beginner Contest 281 B問題 Sandwich Number

問題

atcoder.jp

提出解答

atcoder.jp

問題の概要

英大文字または数字からなる文字列  S が与えられる. この文字列は次のようにして文字または文字列をこの順番で連結して得られる文字列か?

  • 英大文字
  •  1000000 以上  999999 以下の整数を  10 進表記して得られる長さ  6 の文字列
  • 英大文字

制約

  •  S 1 以上  10 以下である英大文字または数字からなる文字列.

解法

肯定的であるための必要十分条件は以下が全て成立することである. なお,  S i 文字目を  S_i とする.

  •  |S|=8
  •  |S|=8 のもとで以下が全て成立する.
    •  S_1, S_8 が英大文字
    •  S_2 {\tt 0} ではない数字
    •  S_3, S_4, S_5, S_6, S_7 は数字