Advertisement
Pastehsjsjs

Untitled

Mar 20th, 2023
569
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.85 KB | Source Code | 0 0
  1. from functools import lru_cache
  2. from sys import setrecursionlimit
  3.  
  4. setrecursionlimit(100_000)
  5.  
  6.  
  7. def m(h):
  8.     x = []
  9.     if h - 1 >= 0: x.append(h - 1)
  10.     if h - 2 >= 0: x.append(h - 2)
  11.     if h - 4 >= 0: x.append(h - 4)
  12.     return x
  13.  
  14.  
  15. @lru_cache(None)
  16. def f21(h):
  17.     if h == 0:
  18.         return 'END'
  19.  
  20.     if any([f21(x) == 'END' for x in m(h)]):
  21.         return 'P'
  22.     if all([f21(x) == 'P' for x in m(h)]):
  23.         return 'V'
  24.     if any([f21(x) == 'V' for x in m(h)]):
  25.         return 'P'
  26.  
  27.  
  28. @lru_cache(None)
  29. def f19(h):
  30.     if h == 0:
  31.         return 'END'
  32.  
  33.     if any([f19(x) == 'END' for x in m(h)]):
  34.         return 'P1'
  35.     if any([f19(x) == 'P1' for x in m(h)]):
  36.         return 'V1'
  37.  
  38.  
  39. @lru_cache(None)
  40. def f20(h):
  41.     if h == 0:
  42.         return 'END'
  43.  
  44.     if any([f20(x) == 'END' for x in m(h)]):
  45.         return 'P1'
  46.     if all([f20(x) == 'P1' for x in m(h)]):
  47.         return 'V1'
  48.  
  49.     if any([f20(x) == 'V1' for x in m(h)]):
  50.         return 'P2'
  51.     if all([f20(x) == 'P2' for x in m(h)]):
  52.         return 'V2'
  53.  
  54.     if 'P2' in [f20(x) for x in m(h)] and 'P1' in [f20(x) for x in m(h)] and len(set([f20(x) for x in m(h)])) == 2:
  55.         return 'P12'
  56.  
  57.     if any([f20(x) == 'V2' for x in m(h)]):
  58.         return 'P3'
  59.  
  60.     if 'P12' in [f20(x) for x in m(h)] and 'V1' not in [f20(x) for x in m(h)] and 'V2' not in [f20(x) for x in
  61.                                                                                                m(h)] and 'P3' not in [
  62.         f20(x) for x in m(h)]:
  63.         return 'V23'
  64.  
  65.  
  66. for S in range(1, 15 + 1):
  67.     r = f19(S)
  68.     if r == 'V1':
  69.         print(S)  # 8
  70.  
  71. print('___' * 20 + '\n\n')
  72.  
  73. for S in range(1, 15 + 1):
  74.     r = f20(S)
  75.     if r and r == 'V23':
  76.         print(S)  # 8, 10
  77.  
  78. print('___' * 20)
  79.  
  80. for S in range(1, 15 + 1):
  81.     r = f21(S)
  82.     if r == 'V':
  83.         print(S)  # 15
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement