小柒的幸运数
题号:NC295045
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小柒最近获得了一个仅由小写字母组成的字符串 s,他定义字符串的价值 \mathrm{val} 为:

\displaystyle\mathrm{val} = \sum\limits_{i=1}^{|s|}\sum\limits_{j=i+1}^{|s|} [s_i>s_j]

\hspace{15pt}小柒自己有一个幸运数字 x,小柒想选一个 s 的非空子串,使得这个子串的价值最接近自己幸运数字,请问最接近小柒幸运数字的子串价值与幸运数字的差的绝对值是多少。

【名词解释】
\hspace{15pt}本题公式中的大括号代表艾弗森括号,具体地,[P] = \begin{cases} 1 & \text{如果 } P \text{ 为真} \\ 0 & \text{如果 } P \text{ 为假} \end{cases}
\hspace{15pt}|s| 代表字符串 s 的长度。
\hspace{15pt}子串:从原字符串中,连续的选择一段字符(可以全选)得到的新字符串。

输入描述:

\hspace{15pt}第一行输入一个仅由小写字母组成的字符串 s \left(1\leq |s|\leq 2\times 10^5\right) 和一个整数 x \left(1\leq x\leq 10^{18}\right),表示字符串 s、幸运数字 x

输出描述:

\hspace{15pt}输出一个整数,表示最接近小柒幸运数字的子串价值与幸运数字的差的绝对值。
示例1

输入

复制
acasbcjasc 10

输出

复制
0