<jupyter_start><jupyter_text>Набор заданий №2 Скородумов Александр БВТ1904  Задание 1 "Треугольник с максимальным периметром."Массив `A` состоит из целых положительных чисел - длин отрезков. Составьте из трех отрезков такой треугольник, чтобы его периметр был максимально возможным. Если невозможносоставить треугольник с положительной площадью - функция возвращает 0.<jupyter_code># Функция для расчета максимального периметра
def maxPerimeter(array):
        answer = 0
        n = len(array)
        # Перебираем все возможные комбинации чисел из массива по тройкам, так как иммем дело с треугольником
        for i in range(n-2):
            for j in range(i+1, n-1):
                for k in range(j+1, n):
                    a = array[i]
                    b = array[j]
                    c = array[k]
                    if a<b+c and b<a+c and c<a+b:
                        answer = max(answer, a+b+c)
        return str(answer)
    
# Основная функция
array = [0] * int(input())
for i in range(len(array)):
    array[i] = int(input())
print(array)
print(maxPerimeter(array))<jupyter_output>3
2
1
2
[2, 1, 2]
5<jupyter_text>Задание 2 "Максимальное число."Дан массив неотрицательных целых чисел `nums`. Расположите их в таком порядке, чтобывместе они образовали максимально возможное число.Замечание: Результат может быть очень большим числом, поэтому представьте его как`string`, а не `integer`.<jupyter_code># Фукнция для получения самой большой комбинации
def highestComb(array):
    # Получаем длинну (строковую) максимального элемента 
    maxLength = len(str(max(array)))
    # Превращяем все числа в массиве в строки
    K = map(str, array)
    
    # Функция которая при сортировке дает числам с маленькой длинной больший вес
    def sortKey(s):
        return s + s[-1] * (maxLength - len(s))
    
    # Сортируем масиив строк 
    sortedList = sorted(K, key=sortKey, reverse=True)
    return ''.join(sortedList)
    
# Основаня функция
array = [0] * int(input())
for i in range(len(array)):
    array[i] = (int(input()))
print(array)
print(highestComb(array))<jupyter_output>5
0
2
6
12
623
[0, 2, 6, 12, 623]
66232120<jupyter_text>Задание 3 "Сортировка диагоналей в матрице."Дана матрица `mat` размером `m * n`, значения - целочисленные. Напишите функцию, сортирующую каждую диагональ матрицы по возрастанию и возвращающую получившуюся матрицу.<jupyter_code># Функция для вывода матрицы
def printmatrix(matrix):
    for i in range(len(matrix)): 
        for j in range(len(matrix[i])):
            print(matrix[i][j], end=" ")
        print()
        
# Функция для сортировки матрицы
def sortmatrix(matrix):
    # Печатаем матрицу кторая пришла
    printmatrix(matrix)
    print()
    # Ширина матрицы
    w = len(matrix[0])
    # Высота матрицы
    h = len(matrix)
    
    # Создаем массив для всех значений в матрице, где у каждого будет ссылка на диагональ к которой он принадлежит 
    arrWithAllElem = [-1] * w * h
    # Проход по матрице
    for i in range(len(matrix)): 
        for j in range(len(matrix[i])):
            if (arrWithAllElem[j + i * w] == -1):
                arrWithAllElem[j + i * w] = []
                thisDiagArr = [[i + offset, j + offset, (j+ offset) + (i + offset) * w] for offset in range(min([w,h])) if ((j + offset < w) and (i + offset < h))]
                
                for k in range(len(thisDiagArr)):
                    arrWithAllElem[j + i * w].append(matrix[thisDiagArr[k][0]][thisDiagArr[k][1]])
                    if (arrWithAllElem[thisDiagArr[k][2]] == -1):
                        arrWithAllElem[thisDiagArr[k][2]] = arrWithAllElem[j + i * w]
                arrWithAllElem[j + i * w].sort()
    
    sortedmatrix = [[0] * w for i in range(h)]
    for i in range(len(arrWithAllElem)):
        sortedmatrix[i//w][i%w] = arrWithAllElem[i][0];
        arrWithAllElem[i].remove(arrWithAllElem[i][0]);
    return sortedmatrix
    

        
printmatrix(sortmatrix([[11, 25, 66, 12, 69, 72], [23, 55, 17, 45, 15, 52], [75, 31, 36,
44, 58, 81], [22, 27, 33, 25, 68, 44], [84, 28, 14, 11, 85, 50]]
))<jupyter_output>11 25 66 12 69 72 
23 55 17 45 15 52 
75 31 36 44 58 81 
22 27 33 25 68 44 
84 28 14 11 85 50 

11 17 44 12 52 72 
11 25 25 45 15 69 
14 23 36 44 58 81 
22 27 31 55 50 66 
84 28 75 33 85 68
{'fraction_non_alphanumeric': 0.11139714486309385, 'fraction_numerical': 0.05640065527732272, 'mean_word_length': 2.775618374558304, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '589369', 'license': 'MIT', 'n_tokens_mistral': 1839, 'n_tokens_neox': 1801, 'n_words': 473, 'path': 'Tasks2_BVT1904_Skorodumov.ipynb', 'repo_name': 'SkorodumovAlex/SIAODLabs', 'size': '4273'}