AT_arc040_d.[ARC040D] カクカク塗り

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君非常热爱涂地板。地板被分成了一个 N×NN \times N 的网格,其中有些格子上可能存在障碍物(包括可能一个障碍物都没有)。他计划按照以下规则来涂地板:

  • 重复以下操作:「将当前所在的格子涂色,然后移动到上下左右相邻的格子之一」。
  • 每次移动后需要顺时针旋转 9090 度。具体来说,刚刚向上或向下移动完后,接下来的移动方向必须是水平的;刚刚向左或向右移动完后,接下来的移动方向必须是垂直的。
  • 不能移动到已经涂过色的格子。
  • 不能移出网格边界或移动到障碍物所在的格子。

高桥君已经选择好了起点格子。请判断他是否可以通过合理的路径,将所有没有障碍物的格子全部涂色。注意,初始的移动方向和最终停下的格子没有特别要求。在涂完最后一个格子之后,也不需要再进行移动。

输入格式

标准输入给出如下数据:

  • 第一行包含一个整数 N (2≤N≤400)N\ (2 \leq N \leq 400),表示网格的大小。
  • 接下来 NN 行中每行包含一个长度为 NN 的字符串 SiS_i,描述网格的状态。
    • . 表示该格子是可涂色的地板。
    • # 表示该格子有障碍物,不可涂色。
    • s 表示起始格子,高桥君将从此处出发。

保证输入中恰有一个 s,且至少有一个 .。

输出格式

如果高桥君能将所有没有障碍物的格子全部涂色,输出 POSSIBLE;否则,输出 IMPOSSIBLE。输出结果需要另起一行。

输入输出样例

  • 输入#1

    5
    #....
    ..s..
    ..#..
    #....
    ##..#

    输出#1

    POSSIBLE
  • 输入#2

    5
    s.###
    ..###
    ###..
    #....
    #..##

    输出#2

    IMPOSSIBLE
  • 输入#3

    3
    ..#
    .s.
    #..

    输出#3

    IMPOSSIBLE

说明/提示

部分分数

题目设有部分分数:

  • 对于满足 N≤50N \leq 50 的数据集,正确解答可获得 4040 分。
  • 对于所有测试用例,若能正确解答,可额外获得 6060 分。

样例说明 1

通过给定的移动规则,可以如图所示地依次涂色。 ![figure](http://arc040.contest.atcoder.jp/img/arc/040/51381a54b87364aa2348975a838ef330/kaqkaq.png)

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页