CF822B.Crossword solving

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Crossword solving

题目描述

很快 Leha 就被计算两个阶乘的最大公约数这件事给弄腻了,于是他决定去解一些填字游戏。众所周知,填字游戏非常有趣,不过有时候也非常难。在解其中一道题的过程中,Leha 需要解决一个简单的小问题。你也可以做到,对吧?

Leha 有两个字符串 sstt。黑客想要修改字符串 ss,使得它能够作为子串出现在 tt 中。所有允许的修改如下:Leha 可以选择 ss 中的一个位置,并将该位置的字符替换为问号“?”。黑客确信,在比较过程中,问号可以代表任意字符。例如,如果他得到字符串 ss = "ab?b",则它会作为 tt = "aabrbb" 的一个子串出现。

保证字符串 ss 的长度不超过字符串 tt 的长度。请帮助黑客尽可能少地在 ss 上替换字符,使其修改后的结果能作为 tt 的子串出现。问号“?”应视为与任何其他字符相等。

输入格式

第一行包含两个整数 nnmm,表示字符串 sstt 的长度(1nm10001 \leq n \leq m \leq 1000)。

第二行包含 nn 个小写英文字母,表示字符串 ss

第三行包含 mm 个小写英文字母,表示字符串 tt

输出格式

第一行输出一个整数 kk,表示需要替换的最少字符数。

第二行输出 kk 个不同整数,表示需要替换的 ss 中字符的位置。位置顺序可以任意,编号从 1 开始。如果有多种方案,可以输出任意一种。

说明/提示

由 ChatGPT 5 翻译

样例

3 5
abc
xaybz
2
2 3 
4 10
abcd
ebceabazcd
1
2 

在线编程 IDE

建议全屏模式获得最佳体验