問題一覧 > 通常問題

No.3802 Crossword Key

レベル : / AI推定難易度 : 167 / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : (AC するまで非表示) / 解いたユーザー数 17
作問者 : Nihonielse / テスター : Skyシャーレ kαmμ ふらわぁ kakao743 fepic_ / テストしたAI : gemini-3.5-flash-lite gpt-5.6-luna
お気に入りにしたユーザー ProblemId : 14135 / 自分の提出
問題文最終更新日: 2026-11-12 21:11:25
yukicoder contest 522 Crossword Contest (順位表) の他の問題:

問題文

$H \times W$ の大きさのクロスワードがあります。
フレロビくんはクロスワードを作りましたが、どこにカギがあるのか忘れてしまいました。

$H \times W$ の盤面が、 $H$ 個の文字列 $S_1,S_2,\cdots,S_H$ によって与えられます。
上から $i$ 番目、左から $j$ 番目のマスは、 $S_i$ の $j$ 文字目が # の場合は黒マス、 . の場合は白マスです。

カギの数と、それぞれのカギの位置を求めるプログラムを作成してください。

ただし、カギのある位置は、次の条件のいずれかを満たすものとします。

  • 横のカギ: そのマスが白マスかつ、そのマスの左が黒マスまたは盤面の外であり、そのマスの右が白マスである。
  • 縦のカギ: そのマスが白マスかつ、そのマスの上が黒マスまたは盤面の外であり、そのマスの下が白マスである。

横のカギと縦のカギが重複する場合があることに注意してください。その場合はどちらも同じ添字を使います。
また、カギの添字は1から始まり、盤面の上側の方が小さく、同じ行では左側が小さいものとします。
カギの数は、カギの添字の最大値に等しいです。

この問題の制約上では、カギが少なくとも1つは存在します。

制約

  • $2 \le H,W \le 100$
  • $S_i$ は # または . で構成される長さ $W$ の文字列
  • $H,W$は整数
  • $S$ に . が少なくとも2つは含まれる
  • 全ての . には少なくとも上下左右のいずれかに他の . が隣接している

入力

$H\ W$
$S_1$
$S_2$
$\vdots$
$S_H$

出力

カギの数を $K$ とします。 添字 $i$ のカギの位置を上から $R_i$ 番目、左から $C_i$ 番目として、次のように出力してください。

$K$
$R_1\ C_1$
$R_2\ C_2$
$\vdots$
$R_K\ C_K$

最後に改行してください。

サンプル

サンプル1
入力
3 5
#####
#...#
#####
出力
1
2 2

このクロスワードは、上から2番目、左から2番目のマスにある横のカギのみあります。 全くクロスしていませんが、クロスワードとして扱います。

サンプル2
入力
4 4
....
.#.#
##.#
....
出力
3
1 1
1 3
4 1

上から1番目、左から1番目のマスに横と縦のカギ、
上から1番目、左から3番目のマスに縦のカギ、
上から4番目、左から1番目のマスに横のカギがあります。

このように、横のカギと縦のカギが重複する場合もあります。

サンプル3
入力
6 6
...###
.#####
.####.
#####.
#####.
###...
出力
3
1 1
3 6
6 4

盤面が分離していることもあります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。