## A. A.M. Deviation

### Solution:

Obviously it is meaningless to adjust $a_1$ and $a_3$. So it is not difficult to find that the effect of each operation on the result is 3.

Therefore, only the remainder of the initial value divided by 3 needs to be considered. If the remaining 0, then output 0. Otherwise, output 1 (because 3 is subtracted again when the remainder is 2, you can get -1).

### Code:

Java

C++

## B. Reverse Sort

### Solution:

Obviously, every replacement is the replacement of the 1 on the left and the 0 on the right. And such replacements must not conflict with each other. Therefore, only one operation is required at most.

### Code:

Java

C++

## C. Dominant Character

### Solution:

In fact, there are only 4 types of substrings that may satisfy the conditions:

- Obviously, if there are two consecutive a, that is, "aa", then this substring must meet the condition.
- "aba" or "aca".
- "abca" or "acba".
- "abbacca".

We try to construct other approaches.

We start with the fourth case. We try to add letters after "abbaccc", we need to add two additional letters a.

Obviously, two letters a cannot be added directly, because at this time #1 is a better solution.

Also cannot add aca or aca. At this time #2 is a better solution.

Nor can you add abca or acba. At this time #3 is a better solution.

But adding abba or acca does not work either. Because too many other letters have been added.

### Code:

Java

C++

## D. Treelabeling

The key to this problem is to find the condition of $u\oplus v> \min(u,v)$.

## E. Array Equalizer

The key to this problem is to take the unknown b[1]-a[1] as a variable and substitute it into other numbers to obtain a series of linear expressions. Then according to b[1]-a[1], find expressions greater than 0 and less than 0 through binary search.