CF1504B Flip the Bits

Description

There is a binary string $ a $ of length $ n $ . In one operation, you can select any prefix of $ a $ with an equal number of $ 0 $ and $ 1 $ symbols. Then all symbols in the prefix are inverted: each $ 0 $ becomes $ 1 $ and each $ 1 $ becomes $ 0 $ . For example, suppose $ a=0111010000 $ . - In the first operation, we can select the prefix of length $ 8 $ since it has four $ 0 $ 's and four $ 1 $ 's: $ [01110100]00\to [10001011]00 $ . - In the second operation, we can select the prefix of length $ 2 $ since it has one $ 0 $ and one $ 1 $ : $ [10]00101100\to [01]00101100 $ . - It is illegal to select the prefix of length $ 4 $ for the third operation, because it has three $ 0 $ 's and one $ 1 $ . Can you transform the string $ a $ into the string $ b $ using some finite number of operations (possibly, none)?

Input Format

The first line contains a single integer $ t $ ( $ 1\le t\le 10^4 $ ) — the number of test cases. The first line of each test case contains a single integer $ n $ ( $ 1\le n\le 3\cdot 10^5 $ ) — the length of the strings $ a $ and $ b $ . The following two lines contain strings $ a $ and $ b $ of length $ n $ , consisting of symbols $ 0 $ and $ 1 $ . The sum of $ n $ across all test cases does not exceed $ 3\cdot 10^5 $ .

Output Format

For each test case, output "YES" if it is possible to transform $ a $ into $ b $ , or "NO" if it is impossible. You can print each letter in any case (upper or lower).

Explanation/Hint

The first test case is shown in the statement. In the second test case, we transform $ a $ into $ b $ by using zero operations. In the third test case, there is no legal operation, so it is impossible to transform $ a $ into $ b $ . In the fourth test case, here is one such transformation: - Select the length $ 2 $ prefix to get $ 100101010101 $ . - Select the length $ 12 $ prefix to get $ 011010101010 $ . - Select the length $ 8 $ prefix to get $ 100101011010 $ . - Select the length $ 4 $ prefix to get $ 011001011010 $ . - Select the length $ 6 $ prefix to get $ 100110011010 $ . In the fifth test case, the only legal operation is to transform $ a $ into $ 111000 $ . From there, the only legal operation is to return to the string we started with, so we cannot transform $ a $ into $ b $ .