[Codeforces] Round #566 (Div. 2) B. Plus from Picture

問題

方針

題意

与えられた入力が十字の形をしているかどうかを答えます。十字の形とは、

  • 中心となるセルは一つ
  • 中心から上下左右にそれぞれ一つ以上のセルが存在する
  • 上記以外のセルは存在しない

を満たすものです。

十字の中心を求め、’*’ の個数を求める

まず初めに、’*’ となるセルの個数を求めます。次に、十字の中心の座標を求めます。十字の中心は、上下左右に ‘*’ となるセルが4つ存在している必要があります。

十字の中心から、上下左右の4方向に対して、’*’ の個数を数え上げます。途中で空のセルが見つかったときは、そこでその方向の探索を終えます。この探索で、’*’ の全体の個数と一致すれば、十字の形をしています。

コード

提出したコード