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

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

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

Задание D

n, m = map(int, input().split())
source_list = [list(map(int, input().split())) for i in range(n)]
source_i, source_j = map(int, input().split())
source_list_copy = copy.copy(source_list)
del n
del m
res = swap_columns(source_list, source_i, source_j)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
if res is not None:
    print("Функция не должна возвращать результат")
    sys.exit(0)
for row in source_list:
    print(" ".join(map(str, row)))

Задание E

n = int(input())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
res = is_symmetric(source_list)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
if source_list != source_list_deep_copy:
    print("Функция изменила содержимое переданного списка")
    sys.exit(0)
if res is True:
    print("YES")
elif res is False:
    print("NO")
else:
    print("Функция должна возвращать значение типа bool")

Задание F

n = int(input())
source_list = [list(map(int, input().split())) for i in range(n)]
source_k_list = list(map(int, input().split()))
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
check_once = True
for source_k in source_k_list:
    res = kth_diagonal(source_list, source_k)
    if len(source_list) != len(source_list_copy):
        print("Функция изменила длину внешнего списка")
        sys.exit(0)
    for i in range(len(source_list)):
        if source_list[i] is not source_list_copy[i]:
            print("Функция изменила ссылки на вложенные списки")
            sys.exit(0)
    if check_once:
        check_once = False
        if source_list != source_list_deep_copy:
            print("Функция изменила содержимое переданного списка")
            sys.exit(0)
    if type(res) is not list:
        print("Функция должна возвращать список")
        sys.exit(0)
    for elem in res:
        if type(elem) is not int:
            print("Функция дожна возвращать список, элементы которого имеют тип int")
            sys.exit(0)
    print(*res)

Задание I

n, m = map(int, input().split())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
del m
res = transpose(source_list)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
if source_list != source_list_deep_copy:
    print("Функция изменила содержимое переданного списка")
    sys.exit(0)
if type(res) is not list:
    print("Функция должна возвращать список")
    sys.exit(0)
if len(res) != len(source_list[0]):
    print("Функция должна возвращать список длины m =", len(source_list[0]))
    sys.exit(0)
for row in res:
    if type(row) is not list:
        print("Функция дожна возвращать список, элементы которого являются списком")
        sys.exit(0)
    if len(row) != len(source_list):
        print("Функция должна возвращать список, элементы которого являются списком длины n = ", len(source_list))
        sys.exit(0)
    for elem in row:
        if type(elem) is not int:
            print("Функция должна возвращать список, элементы которого являются списками элементов типа int")
            sys.exit(0)
for row in res:
    print(*row)

Задание J

n = int(input())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
res = transpose(source_list)
if res is not None:
    print("Функция не должна возвращать значение")
    sys.exit(0)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
    for elem in source_list[i]:
        if type(elem) is not int:
            print("Изменился тип элементов вложенных списков")
            sys.exit(0)
for row in source_list:
    print(*row)

Задание K

n = int(input())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
res = swap_diagonals(source_list)
if res is not None:
    print("Функция не должна возвращать значение")
    sys.exit(0)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
    for elem in source_list[i]:
        if type(elem) is not int:
            print("Изменился тип элементов вложенных списков")
            sys.exit(0)
for row in source_list:
    print(*row)

Задание L

source_n = int(input())
source_list = input().split()
source_list_copy = copy.copy(source_list)
res = to_2d(source_list, source_n)
if source_list != source_list_copy:
    print("Функция изменила переданный список")
    sys.exit(0)
if type(res) is not list:
    print("Функция должна вернуть список")
    print("Функция вернула: ", res)
    sys.exit(0)
for i in range(len(res)):
    if i < len(res) - 1 and len(res[i]) != source_n:
        print("Строка с индексом", i, "содержит неверное число элементов")
        print("Функция вернула: ", res)
        sys.exit(0)
    if i == len(res) - 1 and (len(res[i]) == 0 or len(res[i]) > source_n):
        print("Строка с индексом", i, "содержит неверное число элементов")
        print("Функция вернула: ", res)
        sys.exit(0)
print("\n".join(map(lambda row: " ".join(row), res)))

Задание M

n, m = map(int, input().split())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
source_list_deep_copy = copy.deepcopy(source_list)
del n
del m
res = rotate(source_list)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
if source_list != source_list_deep_copy:
    print("Функция изменила содержимое переданного списка")
    sys.exit(0)
if type(res) is not list:
    print("Функция должна возвращать список")
    sys.exit(0)
if len(res) != len(source_list[0]):
    print("Функция должна возвращать список длины m =", len(source_list[0]))
    sys.exit(0)
for row in res:
    if type(row) is not list:
        print("Функция дожна возвращать список, элементы которого являются списком")
        sys.exit(0)
    if len(row) != len(source_list):
        print("Функция должна возвращать список, элементы которого являются списком длины n = ", len(source_list))
        sys.exit(0)
    for elem in row:
        if type(elem) is not int:
            print("Функция должна возвращать список, элементы которого являются списками элементов типа int")
            sys.exit(0)
for row in res:
    print(*row)

Задание N

n = int(input())
source_list = [list(map(int, input().split())) for i in range(n)]
source_list_copy = copy.copy(source_list)
del n
res = rotate(source_list)
if len(source_list) != len(source_list_copy):
    print("Функция изменила длину внешнего списка")
    sys.exit(0)
for i in range(len(source_list)):
    if source_list[i] is not source_list_copy[i]:
        print("Функция изменила ссылки на вложенные списки")
        sys.exit(0)
if res is not None:
    print("Функция не должна возвращать значение")
    sys.exit(0)
for row in source_list:
    print(*row)

Задание X

def check(a):
    if type(a) is int:
        return
    if type(a) is not list:
        print("Один из внутренних списков имеет тип отличный от int и list")
        sys.exit(0)
    for i in range(len(a)):
        if type(a[i]) is list:
            for j in range(i):
                if a[i] is a[j]:
                    print("Среди вложенных списков есть ссылки на один и тот же список")
                    sys.exit(0)
    for elem in a:
        check(elem)
def set0(a):
    if type(a[0]) is int:
        a[0] = 1
    else:
        set0(a[0])
def rec_sum(a):
    if type(a) is int:
        return a
    else:
        s = 0
        for elem in a:
            s += rec_sum(elem)
        return s
a = gen_x(int(input()))
if type(a) is not list:
    print("Функция должна возвращать список")
    sys.exit(0)
check(a)
print(a)
set0(a)
if rec_sum(a) != 1:
    print("После модификации одного элемента списка, в списке изменилось много элементов")
    print("Состояние списка после изменения:")
    print(a)

Задание Y

a = gen_y(int(input()))
if type(a) is not list:
    print("Функция должна возвращать список")
    sys.exit(0)
print(a)

Задание Z

a = gen_z(list(map(int, input().split())))
if type(a) is not list:
    print("Функция должна возвращать список")
    sys.exit(0)
print(a)