fork download
  1. from itertools import zip_longest
  2.  
  3. def to_base(s, n):
  4. t = 0
  5.  
  6. for i,c in enumerate(s[::-1]):
  7. if isinstance(c, int):
  8. t += c * n**i
  9. else:
  10. t += ord(c) * n**i
  11.  
  12. return t
  13.  
  14. def f(s):
  15. L = [""]
  16. s = list(s)
  17.  
  18. while s:
  19. L[-1] += s.pop()
  20.  
  21. if len(L[-1]) == 600:
  22. L.append("")
  23.  
  24. Jb = [to_base(r, 19) for r in L]
  25. a = to_base(Jb, 13)
  26.  
  27. L = [list(filter(None, r)) for r in zip_longest(*L)]
  28. Jb = [to_base(r, 19) for r in L]
  29. b = to_base(Jb, 13)
  30.  
  31. a %= 16**20
  32. b %= 16**20
  33.  
  34. A, B = divmod(a, 16**12)
  35. C, D = divmod(b, 16**12)
  36. E = A*11 + C
  37. E %= 4**16
  38.  
  39. return to_base([E, B, D], 16**12)
  40.  
  41. print(f(input()))
Success #stdin #stdout 0.02s 8696KB
stdin
42
stdout
282037926664078014