CF BUDDY
← Problems·

1809D · Binary String Sorting

1800 · constructive algorithms, greedy

Problem: You are given a binary string ss consisting of only characters 0 and/or 1.

You can perform several operations on this string (possibly zero). There are two types of operations:

  • choose two consecutive elements and swap them. In order to perform this operation, you pay 101210^{12} coins;
  • choose any element from the string and remove it. In order to perform this operation, you pay 1012+110^{12}+1 coins.

Your task is to calculate the minimum number of coins required to sort the string ss in non-decreasing order (i. e. transform ss so that s1s2sms_1 \le s_2 \le \dots \le s_m, where mm is the length of the string after applying all operations). An empty string is also considered sorted in non-decreasing order.

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

The only line of each test case contains the string ss (1s31051 \le |s| \le 3 \cdot 10^5), consisting of only characters 0 and/or 1.

The sum of lengths of all given strings doesn't exceed 31053 \cdot 10^5.

Output Format: For each test case, print a single integer — the minimum number of coins required to sort the string ss in non-decreasing order.

Note: In the first example, you have to remove the 11-st element, so the string becomes equal to 00.

In the second example, the string is already sorted.

In the third example, you have to swap the 22-nd and the 33-rd elements, so the string becomes equal to 0011.

In the fourth example, you have to swap the 33-rd and the 44-th elements, so the string becomes equal to 00011101, and then remove the 77-th element, so the string becomes equal to 0001111.

In the fifth example, you have to remove the 11-st element, so the string becomes equal to 001101, and then remove the 55-th element, so the string becomes equal to 00111.

In the sixth example, the string is already sorted.

Sample Cases

Case 1

Input

6
100
0
0101
00101101
1001101
11111

Output

1000000000001
0
1000000000000
2000000000001
2000000000002
0

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