小V和字符串
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

一个由0和1组成的字符串可以通过不断交换相邻两位来得到另一个字符串
定义为将字符串x变为字符串y所需要交换的最小步数。如果不能通过交换相邻两位将x变换为y,则定义 比如,,
给定长度为的01串,计算:

其中都是长度为的01串,其中字符串的比较按字典序进行

输入描述:

一行,一个由01组成的字符串

输出描述:

一个整数,答案对998244353取模的结果。
示例1

输入

复制
10

输出

复制
1

说明

f(01,10)=1
示例2

输入

复制
101

输出

复制
5

说明

f(001,010)=1, f(001,100)=2, f(011, 101)=1, f(011, 101)=1