QOJ.ac

QOJ

実行時間制限: 0.2 s メモリ制限: 32 MB 満点: 100

#6709. 新围棋游戏

統計

围棋的历史可以追溯到约 3000 年前,其规则在这漫长的岁月中基本保持不变。围棋可能起源于中国或喜马拉雅地区。与国际象棋一样,围棋是一种技巧性游戏,但它在许多方面与国际象棋不同。围棋的规则非常简单,和国际象棋一样,它挑战着玩家的分析能力,但围棋为直觉提供了更大的发挥空间。

围棋是一种领地游戏。棋盘由 19 条横线和 19 条竖线交叉组成,可以看作是两名玩家共同分享的一块土地。一名玩家拥有黑子,另一名玩家拥有白子。游戏开始时棋盘是空的,玩家轮流在空位上放置一枚棋子。黑棋先行,棋子放置在直线的交点上,而不是方格内。

在本题中,请忘记围棋的原有规则。我们只使用黑子进行游戏。首先,我们在空棋盘上放置一些黑子。然后,你需要告诉我被黑子围住的交点有多少个。被围住的交点是指棋盘上没有棋子且不在棋盘边缘的交点。一个被围住的交点的四个相邻交点(上、下、左、右)必须要么也是被围住的交点,要么被黑子占据。如下图所示,共有 3 个被围住的交点。

由于某种原因,你无法直接获知黑子的放置位置。我们使用四组数字来描述一个 $N \times N$ 棋盘的情况。第一组包含 $N$ 个数字,第 $k$ 个数字表示第 $k$ 行(从上到下,$1 \leq k \leq N$)上黑子的数量。第二组也包含 $N$ 个数字,第 $k$ 个数字表示第 $k$ 列(从左到右,$1 \leq k \leq N$)上黑子的数量。第三组包含 $2N-1$ 个数字,依次表示每一条斜线(从左到右,从上到下)上黑子的数量。第四组同样包含 $2N-1$ 个数字,依次表示每一条反斜线(从左到右,从下到上)上黑子的数量。因此,上述 $5 \times 5$ 棋盘上放置若干黑子的情况可以用以下四组数字描述。

第一组 1 3 2 3 1
第二组 0 2 2 2 4
第三组 0 0 1 3 0 2 2 1 1
第四组 0 0 0 2 3 2 1 2 0

你的任务是编写一个程序,根据这四组数字还原棋盘(保证可以唯一还原出一个棋盘),并告诉我其中有多少个被围住的交点。

输入包含多个测试用例。每个测试用例的第一行是一个整数 $N$ ($N \leq 15$),表示棋盘的大小。接下来四行分别表示第一组、第二组等数字。

输入以一个零结束。

对于每个测试用例,输出一行一个整数,表示棋盘上被黑子围住的交点数量。不允许有额外空格。

样例

输入格式 1

5
1 3 2 3 1
0 2 2 2 4
0 0 1 3 0 2 2 1 1
0 0 0 2 3 2 1 2 0
0

输出格式 1

3

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.