CF BUDDY
← Problems·

1535C · Unstable String

1400 · binary search, dp, greedy

Problem: You are given a string ss consisting of the characters 0, 1, and ?.

Let's call a string unstable if it consists of the characters 0 and 1 and any two adjacent characters are different (i. e. it has the form 010101... or 101010...).

Let's call a string beautiful if it consists of the characters 0, 1, and ?, and you can replace the characters ? to 0 or 1 (for each character, the choice is independent), so that the string becomes unstable.

For example, the strings 0??10, 0, and ??? are beautiful, and the strings 00 and ?1??1 are not.

Calculate the number of beautiful contiguous substrings of the string ss.

Input Format: The first line contains a single integer tt (1t1041 \le t \le 10^4) — number of test cases.

The first and only line of each test case contains the string ss (1s21051 \le |s| \le 2 \cdot 10^5) consisting of characters 0, 1, and ?.

It is guaranteed that the sum of the string lengths over all test cases does not exceed 21052 \cdot 10^5.

Output Format: For each test case, output a single integer — the number of beautiful substrings of the string ss.

Sample Cases

Case 1

Input

3
0?10
???
?10??1100

Output

8
6
25

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback