Explanation in English and Russian
ExplanationIn this problem, a pattern can be observed:
If the array is fully alternating and has a length of 1, it has only 1 alternating subarray.
If the lengt
# Explanation
In this problem, a pattern can be observed:

- If the array is fully alternating and has a length of 1, it has only 1 alternating subarray.
- If the length of the array is 2, the number of such subarrays is 3.
- If the length is 3 — 6 subarrays.
- If the length is 4 — 10 subarrays, and so on.

To find the number of alternating subarrays in a fully alternating array, it is enough to sum the numbers from 1 to 𝑛, where 𝑛 is its length.

For example, if the given array is `nums = {0,1,0,1,0}` with a length of 5, then the number of alternating subarrays is:
```
1 + 2 + 3 + 4 + 5 = 15.
```
However, some test cases contain non-fully alternating arrays. In this case, the array should be split at the points where the alternation is broken, and the number of alternating subarrays should be counted separately for each resulting segment.

For example, in `nums = {0,1,0,1,1,0}`, the alternation is broken after the fourth element:

Let's split the array:
```
nums1 = {0,1,0,1}, length 4  →  1 + 2 + 3 + 4 = 10
nums2 = {1,0}, length 2  →  1 + 2 = 3
```
Total number of alternating subarrays:
```
10 + 3 = 13.
```

# Объяснение
В этой задаче можно заметить закономерность:

- Если массив полностью чередующийся и имеет длину 1, то у него всего 1 чередующийся подмассив.
- Если длина массива 2, то количество таких подмассивов равно 3.
- Если длина 3 — 6 подмассивов.
- Если длина 4 — 10 подмассивов и так далее.

Чтобы найти количество чередующихся подмассивов в полностью чередующемся массиве, достаточно суммировать числа от 1 до **𝑛**, где **𝑛** — его длина.

Например, если дан массив `nums = {0,1,0,1,0}` длиной 5, то количество чередующихся подмассивов:

```
1 + 2 + 3 + 4 + 5 = 15.
```
Однако в тестах встречаются и не полностью чередующиеся массивы. В таком случае необходимо разделить массив в местах, где чередование нарушается, и отдельно подсчитать количество чередующихся подмассивов в каждом из полученных сегментов.

Например, для `nums = {0,1,0,1,1,0}` чередование прерывается после четвертого элемента:

Разделим массив:

```
nums1 = {0,1,0,1}, длина 4  →  1 + 2 + 3 + 4 = 10
nums2 = {1,0}, длина 2  →  1 + 2 = 3
```
Общее количество чередующихся подмассивов:
```
10 + 3 = 13.
```

# Code
```java []
class Solution {
    public long countAlternatingSubarrays(int[] nums) {

        long res = 1;
        int k = 1;
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] != nums[i + 1]) {
                res += ++k;
            } else {
                k = 0;
                res += ++k;
            }
        }
        return res;
    }
}
```
['Java']