Array 116. Дан целочисленный массив A размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии - количество этих элементов (длина серии может быть равна 1). Сформировать два новых целочисленных массива B и C одинакового размера, записав в массив B длины всех серий исходного массива, а в массив C - значения элементов, образующих эти серии.

Решение на Python 3

import random

N = random.randrange(2,20)
#a = [2*(i+1) for i in range(N)]
A = [random.randrange(0,3) for i in range(N)]
B = []
C = []
print("N = ", N)
print("Array A:")
print(A)

x = A[0]
B.append(x)
C.append(1)
k = 0
for i in range(1,N) :
if x == A[i] :
C[k] += 1
else :
x = A[i]
B.append(x)
C.append(1)
k += 1
print()
print("Array B:")
print(B)
print("Array C:")
print(C)