вступление
Вы сидите в зале заседаний в конце длинного стола. Вы оглядываетесь вокруг и видите Тима Кука, совет директоров Apple, призрака Стива Джобса и Джека Донахи. Apple созвала эту встречу, потому что они поняли, насколько холоднее экран блокировки Android, и хотят их 1-UP. Все в комнате смотрят на тебя, как призрак Стив кричит: «Помоги мне, Человек-КодГольф! Ты моя единственная надежда!»
Проблема
Экран блокировки Android представляет собой сетку точек 3 x 3, которую можно соединить, проведя пальцем от одной точки к другой, создавая путь. Паролем считается любой возможный путь, который включает любое количество точек и исключает любое количество точек. (На реальном телефоне длина пути должна быть не менее 4 точек. В этом случае игнорируйте это ограничение.) Apple планирует заменить сетку 3 x 3 сеткой M x N, которая равна (M * N) / 9. раз лучше!
Правила:
Например, в сетке 3x3 с точками, пронумерованными от 1 до 9:
1 2 3
4 5 6
7 8 9
Некоторые допустимые пути:
1
3
7,2,3
1,5,9,2
1,8,6,5,4
4,2,3,5,6,7,8,9
5,9,6,4
И некоторые неверные пути:
1,3
1,9,5
7,5,4,7
4,6
Ваш вход будет три числа:
(M,N,d)
Где сетка M x N, а d - длина пути
1 <= M <= 16
1 <= N <= 16
1 <= d <= M * N
Ваша программа или функция получат ввод в виде строки, разделенной запятыми, и она должна вернуть количество возможных паролей этой длины. Например:
Input: 2,2,1
Output: 4
Input: 2,2,2
Output: 12
Input: 7,4,1
Output: 28
Применяются стандартные правила игры в гольф, самый короткий код выигрывает!
//If I've made a mistake or the rules are unclear, please correct me!
256!
перестановок точек в сетке 16 x 16 представляет действительный шаблон разблокировки. На практике такая программа никогда не прекратится.