AtCoder Regular Contest 040
翻译中…
Problem Statement
翻译中…
イカの高橋君は床を塗るのが大好きです。床は $N \times N$ のマス目状に区切られており、いくつか($0$ 個もありうる)のマスには障害物があります。高橋君はこの床を以下のルールで塗ろうと考えています。
翻译中…
- 「今いるマスの床を塗って、上下左右いずれかの隣のマスに移動する」という行動を繰り返す。
- 移動するたびに向きを
$90$度回転する。すなわち、上または下に移動した直後には右または左に移動し、右または左に移動した直後には上または下に移動する。 - すでに塗ったマスには移動しない。
- マス目の外や障害物のあるマスには移動しない。
翻译中…
高橋君は、すでにどのマスからスタートするかを決めています。このとき、高橋君はうまく移動しながら床を塗ることで、障害物のない全てのマスを塗ることが可能でしょうか。ただし、スタート直後の移動方向や最後に塗るマスには特に指定はありません。また、最後のマスを塗った直後には移動する必要はありません。
翻译中…
Input
翻译中…
入力はイカの形式で標準入力から与えられる。
翻译中…
N
S_1
S_2
:
S_N
翻译中…
$1$行目には、マス目の$1$辺の個数を表す整数$N (2 ≦ N ≦ 400)$が与えられる。$2$行目からの$N$行には、マス目の情報が与えられる。このうち$i (1 ≦ i ≦ N)$行目には、長さ$N$の文字列$S_i$が与えられる。このうち$j (1 ≦ j ≦ N)$文字目は、$i$行目$j$列目のマスの情報を以下のように表す。 ただし、これらの文字列の中にはsがちょうど$1$つ存在すること、.が少なくとも$1$つ以上存在することが保証される。.の場合:このマスが床であることを表す。#の場合:このマスに障害物があることを表す。sの場合:このマスは床であり、高橋君がスタートしようと決めているマスであることを表す。
翻译中…
部分点
翻译中…
この問題には部分点が設定されている。
翻译中…
$N ≦ 50$を満たすデータセット$1$に正解した場合は、$40$点が与えられる。- 全てのテストケースに正解した場合は、上記とは別に
$60$点が与えられる。
翻译中…
Output
翻译中…
全てのマスを塗ることが可能ならば POSSIBLE、そうでない場合は IMPOSSIBLE を $1$ 行に出力せよ。出力の末尾に改行を入れること。
翻译中…
样例
Input #1
5
#....
..s..
..#..
#....
##..#
Output #1
POSSIBLE
図のように移動しながら塗れば良いです。

Input #2
5
s.###
..###
###..
#....
#..##
Output #2
IMPOSSIBLE
Input #3
3
..#
.s.
#..
Output #3
IMPOSSIBLE
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。