Укороченная версия Skyscrapers Challenge
задача
Учитывая массив высот зданий и положительное целое число k, найдите все перестановки (без дубликатов) высот, чтобы точно kбыли видны здания.
Любое здание будет скрывать за собой все здания меньшей или одинаковой высоты.
Любой формат для ввода и вывода действителен.
Входной массив никогда не будет пустым.
В случае, если невозможно увидеть столько же зданий, выведите все, что не может быть ответом, но без ошибки.
Примеры:
(Длина вывода показана для очень длинных выходов, но ваш вывод должен быть со всеми возможными перестановками)
input:[1,2,3,4,5],2
output: 50
input:[5,5,5,5,5,5,5,5],2
output: []
input:[1,2,2],2
output:[(1,2,2)]
Seeing from the left, exactly 2 buildings are visible.
input:[1,7,4],2
output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)]
input:[1,2,3,4,5,6,7,8,9],4
output:67284
input:[34,55,11,22],1
output:[(55, 34, 11, 22), (55, 22, 34, 11), (55, 34, 22, 11), (55, 11, 34, 22), (55, 22, 11, 34), (55, 11, 22, 34)]
input:[3,4,1,2,3],2
output:31
Это код-гольф, поэтому выигрывает самый короткий код
Необязательно: Если возможно, вы можете добавить что-то вроде if length is greater than 20: print length else print answer. В нижнем колонтитуле, а не в коде.
[1,2,3,4,5],5 -> [(1,2,3,4,5)]. Ни один из текущих тестовых примеров не гарантирует, что ответы могут поддерживать показ всех зданий (хотя я не знаю, есть ли у кого-то проблемы с этим).