Как тестируются задачи

Вам нужно написать программу, которая содержит только требуемую функцию (можно несколько функций, если одна функция будет вызывать другую). Программа не должна содержать никакого кода вне функций.

В тестирующей системе после вашей программы будет добавлен следующий код, после чего решение будет проверено на тестах.

Задание A

__a = eval(input())
__a_copy = __a[:]
__b = eval(input())
__b_copy = __b[:]
__res = merge(__a, __b)
if __a != __a_copy or __b != __b_copy:
    print("Фунция не должна модифицировать передаваемые параметры")
if type(__res) != list:
    print("Функция должна возвращать список")
else:
    print(__res)

Задание B

__a = eval(input())
__a_copy = __a[:]
__b = eval(input())
__b_copy = __b[:]
__res = intersection(__a, __b)
if __a != __a_copy or __b != __b_copy:
    print("Фунция не должна модифицировать передаваемые параметры")
if type(__res) != list:
    print("Функция должна возвращать список")
else:
    print(__res)

Задание C

__a = eval(input())
__a_copy = __a[:]
__res = merge_sort(__a)
if __a != __a_copy:
    print("Фунция не должна модифицировать передаваемые параметры")
if type(__res) != list:
    print("Функция должна возвращать список")
else:
    print(__res)

Задание H

class Integer:
    count = 0
    def __init__(self, s=0):
        self.__data = int(s)
    def __lt__(self, other):
        Integer.count += 1
        return self.__data < other.__data
    def __eq__(self, other):
        return self.__data == other.__data
    def __str__(self):
        return str(self.__data)
    def __repr__(self):
        return str(self.__data)
src = [Integer(i) for i in range(1, 5)]
for perm in itertools.permutations(src):
    perm = list(perm)
    Integer.count = 0
    perm_sorted = perm[:]
    if sort4(perm_sorted) is not None:
        print("Функция НЕ должна возвращать значение, а должна переставлять элементы переданного списка")
        break
    if perm_sorted != src:
        print("Сортировка работает неправильно")
        print("Исходный список:", perm)
        print("Список после сортировки:", perm_sorted)
        break
    if Integer.count > 5:
        print("Выполнено слишком много сравнений:", Integer.count)
        print("Исходный список:", perm)
        break
else:
    print("OK")

Задание I

class Integer:
    count = 0
    def __init__(self, s=0):
        self.__data = int(s)
    def __lt__(self, other):
        Integer.count += 1
        return self.__data < other.__data
    def __eq__(self, other):
        return self.__data == other.__data
    def __str__(self):
        return str(self.__data)
    def __repr__(self):
        return str(self.__data)
src = [Integer(i) for i in range(1, 6)]
for perm in itertools.permutations(src):
    perm = list(perm)
    Integer.count = 0
    perm_sorted = perm[:]
    if sort5(perm_sorted) is not None:
        print("Функция НЕ должна возвращать значение, а должна переставлять элементы переданного списка")
        break
    if perm_sorted != src:
        print("Сортировка работает неправильно")
        print("Исходный список:", perm)
        print("Список после сортировки:", perm_sorted)
        break
    if Integer.count > 7:
        print("Выполнено слишком много сравнений:", Integer.count)
        print("Исходный список:", perm)
        break
else:
    print("OK")