QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 1024 MB 満点: 100 ハック可能 ✓

#17945. 巧克力怪盗可可 (Sweet)

統計

读完推理小说《巧克力怪盗蕾娜》后深受感动的可可,决定模仿小说中的名场面。具体方法如下:

  • 第一步:首先准备一个 $N \times N$ 大小的正方形网格状巧克力。这个巧克力可以按 $1 \times 1$ 的单位在任意位置掰开,且其中一部分已经被去除了。此时,剩余的单位巧克力至少有 $4$ 个,并且必须连成一块。在上下左右方向上相邻的两个单位巧克力是相互连接的,相互连接的单位巧克力集合称为一个“块”。
  • 第二步:从这个巧克力中掰下一块单位巧克力吃掉,并满足以下条件:
    • 在掰下这块单位巧克力后,剩余的巧克力仍然连成一块,但在此之后,切开任意两个相邻的单位巧克力之间的连接,都会使巧克力分裂成 $2$ 个块。
  • 第三步:喊出蕾娜的名台词:“这次就放过你,下次一定会把巧克力切成碎片的。”

可可已经准备好了满足第一步条件的巧克力,但她正在为应该掰下哪个位置的单位巧克力才能满足第二步的条件而苦恼。让我们来帮帮可可吧。

输入格式

第一行包含一个整数 $N$,表示巧克力的大小。$(2 \le N \le 40)$

接下来 $N$ 行,每行包含 $N$ 个字符,表示巧克力的状态。每个字符为 #.。如果第 $r$ 行第 $c$ 列的字符为 #,表示该位置有单位巧克力;如果为 .,则表示没有。巧克力的左上角格子为第 $1$ 行第 $1$ 列。

所有输入均满足第一步的条件。

输出格式

第一行输出一个整数,表示满足第二步条件、可以被掰下的不同单位巧克力的数量。

接下来若干行,每行输出一个满足条件的单位巧克力的行号和列号,用空格隔开。输出时,按照行号从小到大排序;若行号相同,则按照列号从小到大排序。

样例

输入格式 1

3
###
#.#
###

输出格式 1

8
1 1
1 2
1 3
2 1
2 3
3 1
3 2
3 3

输入格式 2

3
##.
###
###

输出格式 2

1
2 2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.