Для цього завдання слід написати програму або функцію, яка виводить діагоналі заданої квадратної матриці. Однак якщо ви переміщуєте рядки та стовпці вихідного коду рішення, натомість він повинен стати програмою або функцією, яка повертає антидіагоналі матриці. Читайте детальніше ...
Правила
- Вихідний код вашого рішення вважається двовимірною сіткою символів, розділеною стандартною новою лінією на ваш вибір (передача рядків, повернення каретки або комбінація обох).
Жоден рядок у вихідному коді не може бути довшим попереднього. Ось кілька прикладів дійсних макетів:
### ### ###
######## ####### ### ### #
Ось приклад недійсного макета (оскільки третій рядок довший другого):
###### #### ##### ###
Ваші два рішення повинні бути транспоніровані один одним, тобто ви повинні отримати одне з іншого шляхом заміни рядків і стовпців. Ось дві дійсні пари:
abc def ghi
adg beh cfi
І
print 10 (~^_^)~ foo bar !
p(fb! r~oa i^or n_ t^ ) 1~ 0
Зауважте, що пробіли трактуються, як і будь-які інші символи. Зокрема, знаки пробілу є вагомими, оскільки вони можуть бути не проміжками в транпозі.
Кожне рішення має бути програмою або функцією, яка приймає в якості непустої квадратної матриці одноцифрових цілих чисел. Одне рішення повинно виводити список усіх діагоналей матриці, а інше - список усіх антидіагоналів. Ви можете використовувати будь-які розумні, однозначні формати введення та виведення, але вони повинні бути однаковими між двома рішеннями (це також означає, що вони повинні бути обома функціями, або обома програмами).
- Кожна діагональ проходить зверху вліво-внизу праворуч, і їх слід упорядкувати зверху вниз.
- Кожен антидіагональ проходить знизу зліва вгорі праворуч, і їх слід упорядкувати зверху вниз.
Оцінка балів
Для заохочення рішень, які є максимально «квадратними», основний бал - це кількість рядків або кількість стовпців вашого рішення, залежно від того, що більше . Менше - краще. Зв'язки розбиваються на кількість символів у рішенні, не рахуючи нових рядків. Знову ж таки, менше краще. Приклад:
abcd
efg
h
Це та його перенесення мали б первинний бал 4 (оскільки є 4 стовпчики) та кращий результат 8 (оскільки існує 8 символів, що не є новими рядками). Будь ласка, вкажіть обидва значення у заголовку вашої відповіді.
Випробування
Фактичне завдання, яке виконується двома рішеннями, не повинно бути головним завданням тут, але ось два приклади, які допоможуть вам протестувати свої рішення:
Input:
1 2 3
4 5 6
7 8 9
Diagonals:
3
2 6
1 5 9
4 8
7
Antidiagonals:
1
4 2
7 5 3
8 6
9
Input:
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
Diagonals:
0
1 1
0 0 0
1 1 1 1
0 0 0
1 1
0
Antidiagonals:
1
0 0
1 1 1
0 0 0 0
1 1 1
0 0
1