loj#P6858. 「ICPC World Finals 2021」马赛克搜索
「ICPC World Finals 2021」马赛克搜索
题目描述
国际瓷器保护中心(International Center for the Preservation of Ceramics, ICPC)正在寻找一些古代马赛克中的图案。根据 ICPC 的定义,马赛克是一个矩形网格,每个格子里都有一块彩色的瓷砖。图案与马赛克相似,但有些格中可以是空的。图 G.1 展示了一个图案和马赛克的例子。
一个 的马赛克按从上到下的顺序对行从 到 编号,按从左到右的顺序对列从 到 编号。
如果图案的每一块瓷砖都与子网格的相应瓷砖的颜色相匹配,那么马赛克的一个连续的矩形子网格就与该图案相匹配。形式化地,如果对于所有 ,瓷砖 出现在马赛克中,且图案的 位置要么是空的,要么瓷砖颜色和马赛克中瓷砖 的颜色一样,则称这个 的图案出现在 的马赛克的 位置。
给定图案和马赛克的信息,找出马赛克中出现这个图案的所有位置。
输入格式
输入第一行包含两个整数 和 ,分别表示图案的行数和列数。接下来 行,每行 个在 区间内的整数,表示在这个位置的图案颜色。如果为 则表示这个位置没有瓷砖。
接下来一行包含两个整数 和 ,分别表示马赛克的行数和列数。接下来 行,每行 个在 区间内的整数,表示在这个位置的马赛克颜色。
输出格式
第一行输出一个整数 ,表示总共的匹配次数。接下来 行,每行输出两个整数 ,表示匹配位置。按 递增顺序输出,对于 相同的,按 递增顺序输出。
2 2
1 0
0 1
3 4
1 2 1 2
2 1 1 1
2 2 1 3
3
1 1
1 3
2 2