Problem A:
Notice that if $$$s$$$ starts with a $$$1$$$ we must move the entire string $$$s$$$ to $$$t$$$ at some point. Also Notice that if we perform the operation, the total number of occurrences of $$$01$$$ and $$$10$$$ across both strings can only decrease by one. This gives us an upper bound on the answer being the number of occurrences of $$$01$$$ and $$$10$$$ in $$$s$$$ adding one to this if it starts with the character $$$1$$$.
Now the following construction uses the same number of moves as the upper bound (thus showing it is the minimum number of moves): If $$$s$$$ begins with $$$1$$$ then select the entire string $$$s$$$ and move it to $$$t$$$. Then repeatedly find the first character in $$$s$$$ or $$$t$$$ which is not equal to the character before it (note under this construction such an index can only exist in one string at a time) and selected the suffix starting from this character and move it to the other string. During this construction some prefix of $$$s$$$ will contain $$$0$$$s and some prefix of $$$t$$$ will contain $$$0$$$s, so after each move the total number of $$$01$$$ and $$$10$$$ will decrease.
So the answer to this problem will be the number of $$$01$$$ and $$$10$$$ in $$$s$$$ adding one to the answer if it starts with $$$1$$$.
Problem B:
First lets try to just maximise the score, then worry about minimizing the size later. Notice that it can never be bad to increase the size of the subarray by $$$1$$$, as $$$\mathrm{distinct}(b)$$$ can only increase by at most $$$1$$$ after you do this. This means that if our subarray is not the entire array we can find another subarray with no lower score by increasing its size by $$$1$$$, so we can conclude that the subarray $$$a_1,a_2,...,a_n$$$ has the maximum score.
Now lets try to minimize the length of the subarray. Lets start with the subarray $$$a_1,a_2,...,a_n$$$ (the entire array), see that if the left most element or right most element has only one occurrence in the array, then we can remove it from the selected subarray without decreasing the score, this means that all subarrays that maximise the score can be found by starting with the entire array and deleting distinct elements from the left and right. And so to find the shortest one we should just remove as many elements from the left and right as possible.
Problem C:
First see that at any point we should either remove the leftmost positive element or the rightmost negative element, as if we were to take a positive element that is not the leftmost one we could have just taken the leftmost one first and had a higher score. Now if you do either of these moves some number of times you will always take some prefix of positive numbers and then the remaining suffix of negative numbers, and so to calculate the answer we only need to check all $$$n + 1$$$ ways to split the array into a prefix and suffix and take the maximum across them all.