CF822B.Crossword solving
入门
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Erelong Leha was bored by calculating of the greatest common divisor of two factorials. Therefore he decided to solve some crosswords. It's well known that it is a very interesting occupation though it can be very difficult from time to time. In the course of solving one of the crosswords, Leha had to solve a simple task. You are able to do it too, aren't you?
Leha has two strings s and t. The hacker wants to change the string s at such way, that it can be found in t as a substring. All the changes should be the following: Leha chooses one position in the string s and replaces the symbol in this position with the question mark "?". The hacker is sure that the question mark in comparison can play the role of an arbitrary symbol. For example, if he gets string s="ab?b" as a result, it will appear in t="aabrbb" as a substring.
Guaranteed that the length of the string s doesn't exceed the length of the string t. Help the hacker to replace in s as few symbols as possible so that the result of the replacements can be found in t as a substring. The symbol "?" should be considered equal to any other symbol.
不久之前,Leha 厌倦了计算两个阶乘的最大公约数,于是决定去解一些填字游戏。众所周知,填字游戏是一项非常有趣的活动,尽管有时也会相当困难。在解其中一个填字游戏的过程中,Leha 遇到了一个简单的问题。你也能解决它,对吧?
Leha 有两个字符串 s 和 t。这位黑客希望以某种方式修改字符串 s,使得修改后的 s 能作为子串出现在 t 中。所有修改操作必须满足如下要求:Leha 在字符串 s 中选择一个位置,并将该位置上的字符替换为问号 ?。黑客确信,在比较时,问号 ? 可以匹配任意字符。例如,若他最终得到的字符串为 s="ab?b",那么该字符串便可作为子串出现在 t="aabrbb" 中。
保证字符串 s 的长度不超过字符串 t 的长度。请帮助这位黑客,在 s 中尽可能少地替换字符(即替换为 ?),使得替换后的字符串能作为子串出现在 t 中。在比较时,字符 ? 应被视为与任意其他字符相等。
输入格式
The first line contains two integers n and m (1 ≤ n ≤ m ≤ 1000) — the length of the string s and the length of the string t correspondingly.
The second line contains n lowercase English letters — string s.
The third line contains m lowercase English letters — string t.
第一行包含两个整数 n 和 m(1 ≤ n ≤ m ≤ 1000),分别表示字符串 s 和字符串 t 的长度。
第二行包含 n 个小写英文字母 — 字符串 s。
第三行包含 m 个小写英文字母 — 字符串 t。
输出格式
In the first line print single integer k — the minimal number of symbols that need to be replaced.
In the second line print k distinct integers denoting the positions of symbols in the string s which need to be replaced. Print the positions in any order. If there are several solutions print any of them. The numbering of the positions begins from one.
第一行输出一个整数 k —— 需要替换的最少符号个数。
第二行输出 k 个互不相同的整数,表示字符串 s 中需要替换的符号的位置。位置可以按任意顺序输出;若存在多种解法,输出任意一种即可。位置编号从 1 开始。
输入输出样例
输入#1
3 5 abc xaybz
输出#1
2 2 3
输入#2
4 10 abcd ebceabazcd
输出#2
1 2
输入解题思路,AI测评打分。不知道怎么写?