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

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

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

Задание 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)

Задание 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, 5)]
for perm in itertools.permutations(src):
    perm = list(perm)
    Integer.count = 0
    perm_sorted = perm[:]
    sort4(perm_sorted)
    if perm_sorted != src:
        print("Сортировка работает неправильно")
        print("Исходный список:", perm)
        print("Список после сортировки:", perm_sorted)
        break
    if Integer.count > 5:
        print("Выполнено слишком много сравнений:", Integer.count)
        print("Исходный список:", perm)
        break
else:
    print("OK")

Задание J

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[:]
    sort5(perm_sorted)
    if perm_sorted != src:
        print("Сортировка работает неправильно")
        print("Исходный список:", perm)
        print("Список после сортировки:", perm_sorted)
        break
    if Integer.count > 7:
        print("Выполнено слишком много сравнений:", Integer.count)
        print("Исходный список:", perm)
        break
else:
    print("OK")