CF1163D.Mysterious Code

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

During a normal walk in the forest, Katie has stumbled upon a mysterious code! However, the mysterious code had some characters unreadable. She has written down this code as a string cc consisting of lowercase English characters and asterisks ("*"), where each of the asterisks denotes an unreadable character. Excited with her discovery, Katie has decided to recover the unreadable characters by replacing each asterisk with arbitrary lowercase English letter (different asterisks might be replaced with different letters).

Katie has a favorite string ss and a not-so-favorite string tt and she would love to recover the mysterious code so that it has as many occurrences of ss as possible and as little occurrences of tt as possible. Formally, let's denote f(x,y)f(x, y) as the number of occurrences of yy in xx (for example, f(aababa,ab)=2f(aababa, ab) = 2 ). Katie wants to recover the code cc' conforming to the original cc , such that f(c,s)f(c,t)f(c', s) - f(c', t) is largest possible. However, Katie is not very good at recovering codes in general, so she would like you to help her out.

输入格式

The first line contains string cc ( 1c10001 \leq |c| \leq 1000 ) — the mysterious code . It is guaranteed that cc consists of lowercase English characters and asterisks "*" only.

The second and third line contain strings ss and tt respectively ( 1s,t501 \leq |s|, |t| \leq 50 , sts \neq t ). It is guaranteed that ss and tt consist of lowercase English characters only.

输出格式

Print a single integer — the largest possible value of f(c,s)f(c,t)f(c', s) - f(c', t) of the recovered code.

输入输出样例

  • 输入#1

    *****
    katie
    shiro
    

    输出#1

    1
    
  • 输入#2

    caat
    caat
    a
    

    输出#2

    -1
    
  • 输入#3

    *a*
    bba
    b
    

    输出#3

    0
    
  • 输入#4

    ***
    cc
    z
    

    输出#4

    2
    

说明/提示

In the first example, for cc' equal to "katie" f(c,s)=1f(c', s) = 1 and f(c,t)=0f(c', t) = 0 , which makes f(c,s)f(c,t)=1f(c', s) - f(c', t) = 1 which is the largest possible.

In the second example, the only cc' conforming to the given cc is "caat". The corresponding f(c,s)f(c,t)=12=1f(c', s) - f(c', t) = 1 - 2 = -1 .

In the third example, there are multiple ways to recover the code such that f(c,s)f(c,t)f(c', s) - f(c', t) is largest possible, for example "aaa", "aac", or even "zaz". The value of f(c,s)f(c,t)=0f(c', s) - f(c', t) = 0 for all of these recovered codes.

In the fourth example, the optimal recovered code cc' would be "ccc". The corresponding f(c,s)f(c,t)=2f(c', s) - f(c', t) = 2 .

首页