Работа рассчитана на 1.5 часа Задача 1 (Classes) – Создайте следующую структуру классов (как минимум три класса): 1) Рок-группа 2) Исполнитель 3) Инструмент 4) ... В рок группе есть исполнители, каждый владеет одним или более инструментами. Как минимум нужны функции: 1) Для добавления, удаления, изменения рок группы, исполнителей и их умений 2) Функция, которая выводит максимальное количество каждого инструмента в порядке по убыванию. Например, в группе два человека – один певец ртом и гитарист, а второй гитарист и пианист – функция должна вывести “Гитара – 2, рот – 1, пианино – 1” Задача 2 (Linked Lists) – 1) Нужно реализовать Linked List (желательно в виде класса) 2) Нужно реализовать функцию, которая позволяет найти подсписок в списке. Функция должна вывести позицию начала подсписка в списке, либо False, если такой подсписок не найден. Например – найти подсписок 1->2->3 в списке 5->0->1->2->3->4->6 – ответ должен быть 2 – потому что подсписок 1->2->3 начинается в списке со второго элемента. Задача 3 (greedy/backtracking/hash tables) – Дан лабиринт произвольного размера в виде двумерного массива: [ [0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1], [0, 0, 0, 1, 0, 0], [0, 1, 0, 1, 0, 1], [0, 1, 0, 0, 0, 0], ] 0 – свободная клетка, 1 - стена Даны координаты начала, координаты конца – нужно проверить есть ли в лабиринте проход, и если да, то вывести его на экран