Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. memg = {'': 1}
  2. mod = 10**5
  3.  
  4.  
  5. def f(s):
  6. if s[0] + s[-1] in ['()', '[]', '{}']:
  7. ans = 1
  8. elif s[0] in '({[' and s[-1] == '?':
  9. ans = 1
  10. elif s[0] == '?' and s[-1] in ')}]':
  11. ans = 1
  12. elif s[0] == s[-1] == '?':
  13. ans = 3
  14. else:
  15. return 0
  16. return (ans * g(s[1:-1])) % mod
  17.  
  18.  
  19. def g(s):
  20. if not s in memg:
  21. memg[s] = sum(f(s[:k]) * g(s[k:])
  22. for k in range(2, len(s) + 1, 2)) % mod
  23. return memg[s]
  24.  
  25. input()
  26. print(g(input()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement