Top.Mail.Ru
Ответы

Помогите решить задачу: Неразмышлимая проблема

Контрольная работа
макс. 35 балл.
Дедлайн: 4 июл., 13:26
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Софи откусила кусочек.

— У! Нет! На помощь! — Она быстро выплюнула шишгурец и чуть не задохнулась. — Фу! Как лягушачья кожа или тухлая рыба!

— Ещё хуже, – веселился великан, покатываясь со смеху. — Мне его вкус напоминает комарана или медузлика.

— Неужели нам придётся его есть?!

— Конечно, если не хочешь стать совсем тощей, что тебя ноги ловить не будут.

— Вы хотите сказать «носить не будут»? «Носить» и «ловить» — не одно и то же.

В глазах великана снова появилось прежнее трогательно-печальное выражение.

— Слова, — сказал он, — для меня неразмышиная проблема.

Напишите программу, которая будет размышлять о проблемах БДВ.

Формат ввода
Вводится число – количество строк в списке и количество элементов в строке.

Затем вводятся строки из m чисел через пробел.

Формат вывода
Вывести словарь, в котором ключи – это числа, стоящие на главной диагонали матрицы, а значения – кортеж из остальных значений в этом столбце, не включая число-ключ, без повторений, в порядке убывания. Если на диагонали числа повторяются, то значения по этим столбцам должны находиться в одном кортеже.

Пример 1
Ввод Вывод
4
1 2 3 4
5 2 3 1
4 1 5 3
2 1 3 2
{1: (5, 4, 2), 2: (4, 3, 2, 1), 5: (3,)}
Пример 2
Ввод Вывод
5
2 3 1 0 7
-1 3 7 8 0
7 6 3 3 1
1 3 0 2 3
0 1 3 7 -1
{2: (8, 7, 3, 1, 0, -1), 3: (7, 6, 3, 1, 0), -1: (7, 3, 1, 0)}
Примечания
Главной диагональю квадратной матрицы будем называть диагональ, которая начинается в верхнем левом углу матрицы и изменяется вниз и вправо, пока не будет достигнут правый нижний элемент матрицы.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мудрец
11мес

В общем тут такая песня. Из матрицы (первый пример) нужно получить такой список
[[1, [5, 4, 2]], [5, [3, 3, 3]], 2, [1, 2, 3, 4]].
Его получил, осталось только сделать из него словарь и значения ключей превратить в множества, чтобы не было повторов. До дедлайна 13:26 не успеваю...
ЗЫ: Сделал. Жаль что не уложился в роковые 13:26

123456789101112131415161718192021222324252627282930
 m = [ 
    [1, 2, 3, 4], 
    [5, 2, 3, 1,], 
    [4, 1, 5, 3,], 
    [2, 1, 3, 2] 
    ] 
diag = [] 
st = [] 
for i in range(len(m)): 
    diag += [m[i][i]] 
    r = [] 
    for k in range(len(m)): 
        if i == k:             
            continue 
        else: 
            r += [m[k][i]]        
    st += [r] 
n = list(zip(diag,st)) 
nn = list(map(list,n)) 
res = [i[0] for i in nn] 
res2 = sorted(n) 
result = [] 
for i in range(len(res2) - 1):     
    if res2[i][0] == res2[i + 1][0]: 
        m3 =  list(set(res2[i][1] + res2[i + 1][1]))         
        result += [res2[i][0], m3]       
common = [i for i in nn if not i[0] in result] + [result] 
common2 = [[i[0],tuple(set(i[1]))] for i in common] 
print(dict(common2)) 
     

{1: (2, 4, 5), 5: (3,), 2: (1, 2, 3, 4)}

Аватар пользователя
Искусственный Интеллект
11мес

Главной диагональю квадратной матрицы будем называть диагональ, которая начинается в верхнем левом углу матрицы и изменяется вниз и вправо, пока не будет достигнут правый нижний элемент матрицы.

Это вообще понять невозможно. объясни по-простому