CF518B Tanya and Postcard
题目描述
小 Tanya 决定在她爸爸的生日时送他一张明信片。她已经写好了祝词——一个长度为 $s$ 的字符串,包含大写和小写英文字母。Tanya 还不会写字,于是她找来一份报纸,打算把需要的字母剪下来,粘贴在明信片上,最终拼出字符串 $s$。报纸上有一个字符串 $t$,同样只包含大写和小写英文字母。已知字符串 $t$ 的长度大于等于字符串 $s$ 的长度。
报纸上有的字母可能不够用,也可能有多余。Tanya 想从报纸上恰好剪下 $n$ 个字母($n$ 为 $s$ 的长度),拼出一个长度正好为 $n$ 的字符串,使它尽可能地像 $s$。如果某个位置上所用的字母与 $s$ 中相同位置的字母及大小写都一致,Tanya 会高兴地喊“YAY!”;如果该位置字母的字母本身相同但大小写不同,Tanya 就会说“WHOOPS”。
Tanya 想让“YAY!”出现的次数尽可能多。如果有多种方案“YAY!”次数相同,她希望“WHOOPS”的次数尽量多。你的任务是帮 Tanya 拼出尽可能好的明信片,并输出对应的统计结果。
输入格式
第一行输入字符串 $s$($1 \leq |s| \leq 2 \cdot 10^5$),只包含大小写英文字母,表示 Tanya 明信片的内容。
第二行输入字符串 $t$($|s| \leq |t| \leq 2 \cdot 10^5$),只包含大小写英文字母,表示报纸上的文字。
其中,$|a|$ 表示字符串 $a$ 的长度。
输出格式
输出两个用空格隔开的整数:
- 第一个数为 Tanya 制作明信片时说“YAY!”的次数。
- 第二个数为她说“WHOOPS”的次数。
说明/提示
由 ChatGPT 5 翻译