в 21 задании ответ 13. и вот более оптимизированный код: from functools import * def moves(s): return s+1, s+2, s*2 @lru_cache(None) def g(s): if(s>=34): return 'w' if(any((g(m)=='w') for m in moves(s))): return 'p1' if(all((g(m)=='p1') for m in moves(s))): return 'v1' if(any((g(m)=='v1') for m in moves(s))): return 'p2' if(all((g(m)=='p1') or (g(m)=='p2') for m in moves(s))): return 'v2' for s in range(1,33+1): if(g(s) == 'v2'): print(s)
@ege_inf2 жыл бұрын
Спасибо за ваше решение, выглядит интересно) Официальный ответ в 21ом номере = 7. Надо вникать, чтобы найти ошибку, может проблема в понимании задачи, она кривовато сформулирована. Для школьников это решение слишком сложное, глубина рекурсия здесь мизерная, за оптимальностью не гонимся. Не во всех школах проходят any и all, тем более functools, но, для тех кто увлекается и уже уверенно программирует, оно конечно будет интересно.
@w3hait8502 жыл бұрын
А в 17 разве не 2278 14875
@ege_inf2 жыл бұрын
У меня получилось 2288; 14875, в официальных ответах также. А как получается 2278?