C. 凯撒解密

    Type: Default 1000ms 256MiB

凯撒解密

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

凯撒加密,是一种简单且广为人知的加密技术。需要加密的信息称之为明文,加密后的信息称之为密文。凯撒加密是将明文中的字母都按照一个固定的数量进行偏移,偏移后的结果就是密文,我们也称这个偏移的数量为密钥,密钥值介于 1 至 25 之间。

例如:当密钥为 3 时,表示每个字母往后偏移 3个位置,即: adbecf,…,xaybzc

  • 明文字母:a b c d e f g h i j k l m n o p q r s t u v w x y z
  • 密文字母:d e f g h i j k l m n o p q r s t u v w x y z a b c

笑笑现在得到了一串密文 s,密文由一句句子组成,句子中的单词与单词之间由空格隔开,密文句结尾由换行符结束。但是粗心的他忘记了密钥是多少,他只记得原文中一定含有单词 t

请你根据笑笑提供的信息,帮他计算出密钥可能的种数与所有可能的密钥值

输入格式

输入共两行:

输入第一行:一个字符串 T,表示加密前的原文中包含单词 T,字符串 T 为一个单词,字母之间无空格。

输入第二行:一个字符串 S,表示加密后的密文,单词与单词之间由空格隔开,行末以换行作为结束标志。

数据保证,输入的密文与原文单词,均仅由小写字母构成,不包含其他字符。

输出格式

输出第一行:一个正整数,表示可能的密钥种数。

输出第二行:若干个正整数,表示所有可能的密钥值,按字典序从小到大输出。

注意:若给定数据无法找到可行密钥,则在仅需第一行输出Error,无需输出第二行。

输入输出样例

mem
wow my memory is php code yep
2
3 10
abc
hello world
Error

说明/提示

样例 1 解释

笑笑得到的密文为: wow my memory is php code yep,已知原文中出现了 mem 这个单词,则密钥有2种可能:

  • 当密钥为 33 时,原文单词 mem 向后偏移 33 个字母可以得到 php,在密文中有出现该单词
  • 当密钥为 1010 时,原文单词 mem 向后偏移 1010 个字母可以得到 wow,在密文中有出现该单词

数据范围

对于100%100\% 的数据,1S10001 \leq∣S∣ \leq10001T201 \leq∣T∣\leq20 。式中,S∣S∣表示密文字符串长度,T∣T∣表示单词字符串长度

粒子2025年6月上半月月赛

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2025-5-25 0:00
End at
2025-6-19 0:00
Duration
2 hour(s)
Host
Partic.
9