#P10172. 「OICon-02」Pick Stone
「OICon-02」Pick Stone
题目描述
小 S 有一个 的棋盘。初始每个位置都有一个棋子。每次,小 S 可以取走一个周围(四连通)被取走棋子数不超过 的棋子。求小 S 最多能取走多少棋子,并构造一种合法的取棋子方案。
输入格式
一行,两个正整数 ,表示棋盘大小。
输出格式
第一行一个正整数,表示最多能取走的棋子数 。
接下来 行,每行 个 之间的整数。每个位置的数表示这个位置的棋子是第几个取走的。如果该位置的棋子没被取走,请输出 。
2 2
3
1 2
3 -1
3 5
12
2 3 4 5 6
1 -1 12 -1 7
8 9 -1 11 10
提示
样例解释
对于样例 ,取出 时周围有 个已取出位置,取出 时周围有 个已取出位置,故原构造符合要求。
容易证明没有更优答案。
数据范围
本题采用捆绑测试。
特殊性质 | ||
---|---|---|
对于 的数据:,。
如果你答对了第一问最多能取走的棋子数而没有正确地构造,你将获得 的分值。一个子任务你的得分是所有测试点得分的最小值。注意,你仍需要按格式输出 个数表示构造方案,我们推荐你全部输出 。
保证 checker.cpp
在符合格式要求的输出下用时不超过 秒。