#L3269. 「COCI 2020.3」Skandi
「COCI 2020.3」Skandi
题目描述 译自 COCI 2019/2020 Contest #6 T4. Skandi
Dragica 不仅是当地一个半专业保龄球队的队长,还是一位充满激情的厨师。除此之外,他还是克罗地亚顶尖的填字游戏(crossword)玩家。
填字游戏在一个 的网格上进行。游戏开始时,部分格子已经填上了字母,这些格子至多作为两道题的起点。玩家需要根据给出的提示,在剩下的格子中水平向右或竖直向下填写答案。
一道题的定义:从该题的起点出发,沿着指定方向(右或下),直到网格边界或遇到另一个起点格子(包含字母的格子)之前的连续空格子部分。
如果某个起点格子的右边一格是空格(0),那么该起点格子在水平方向上存在一道题。
如果某个起点格子的下面一格是空格(0),那么该起点格子在竖直方向上存在一道题。
Dragica 知道所有题的答案,但他想让你帮他找出:完成这个填字游戏最少需要回答多少道题,并输出任意一组这样的题。
输入格式 第一行两个空格分隔的整数 , ,含义见题目描述。
接下来 行,每行 个字符 0 或 1:
0 表示这是一个待填充的空格
1 表示该格已填有字母,是至多两道题的起点
保证输入至少有一个 0,且第一行和第一列均为 1。
输出格式 第一行输出完成该次填字游戏的最小答案数 。
接下来 行,每行格式为:
text r c dir 其中 表示题目的行号(从 开始), 表示题目的列号(从 开始), 是 DESNO(克罗地亚语的“右”)或 DOLJE(克罗地亚语的“下”)之一,表示方向。
如果有多解,输出任意一个。
样例 1 输入:
text 4 5 11111 10000 10000 10000 输出:
text 3 2 1 DESNO 3 1 DESNO 4 1 DESNO 解释:
第 行第 列向右的题覆盖第 行的所有空格。
第 行第 列向右的题覆盖第 行的所有空格。
第 行第 列向右的题覆盖第 行的所有空格。
不需要向下的题。
样例 2 输入:
text 6 4 1111 1011 1000 1011 1010 1000 输出:
text 4 1 2 DOLJE 4 4 DOLJE 5 3 DOLJE 3 1 DESNO 样例 3 输入:
text 9 8 11111111 10000000 10001000 10010001 11100001 10100110 10001000 10100001 10010001 输出:
text 14 5 2 DOLJE 5 8 DOLJE 8 3 DOLJE 2 1 DESNO 3 1 DESNO 3 5 DESNO 4 1 DESNO 4 4 DESNO 5 3 DESNO 6 3 DESNO 7 1 DESNO 7 5 DESNO 8 3 DESNO 9 4 DESNO 数据范围 对于 的数据:
各子任务限制:
子任务 分值 特殊限制 1 16 至多 个格子开始前填了字符 2 30 , 3 54 无特殊限制