CF1879C.Make it Alternating
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a binary string s . A binary string is a string consisting of characters 0 and/or 1.
You can perform the following operation on s any number of times (even zero):
- choose an integer i such that 1≤i≤∣s∣ , then erase the character si .
You have to make s alternating, i. e. after you perform the operations, every two adjacent characters in s should be different.
Your goal is to calculate two values:
- the minimum number of operations required to make s alternating;
- the number of different shortest sequences of operations that make s alternating. Two sequences of operations are different if in at least one operation, the chosen integer i is different in these two sequences.
输入格式
The first line contains one integer t ( 1≤t≤104 ) — the number of test cases.
Each test case consists of one line containing the string s ( 1≤∣s∣≤2⋅105 ). The string s consists of characters 0 and/or 1 only.
Additional constraint on the input:
- the total length of strings s over all test cases does not exceed 2⋅105 .
输出格式
For each test case, print two integers: the minimum number of operations you have to perform, and the number of different shortest sequences of operations. Since the second number might be large, print its remainder modulo 998244353 .
输入输出样例
输入#1
3 10010 111 0101
输出#1
1 2 2 6 0 1
说明/提示
In the first test case of the example, the shortest sequences of operations are:
- [2] (delete the 2 -nd character);
- [3] (delete the 3 -rd character).
In the second test case of the example, the shortest sequences of operations are:
- [2,1] (delete the 2 -nd character, then delete the 1 -st character);
- [2,2] ;
- [1,1] ;
- [1,2] ;
- [3,1] ;
- [3,2] .
In the third test case of the example, the only shortest sequence of operations is [] (empty sequence).