Реализуйте класс SparseVector для разреженных векторов.
Конструктор получает длину вектора и список пар [index, value]. Нулевые значения хранить не нужно. Метод dot(other) должен вернуть скалярное произведение двух векторов и работать по меньшему числу ненулевых координат.
В тренажере используется wrapper sparse_vector_dot: он создает два вектора и вызывает dot. Если длины векторов различаются, wrapper должен вернуть строку "length_mismatch".
def sparse_vector_dot(length_a: int, values_a: list[list[int]], length_b: int, values_b: list[list[int]]) -> int:self = 5length = [[0,1],[3,2]]values = 5arg4 = [[3,4],[4,5]]8self = 4length = [[0,7],[2,0]]values = 4arg4 = [[1,3],[3,9]]0self = 3length = [[0,-2],[2,5]]values = 3arg4 = [[0,4],[2,-1]]-13