fork(1) download
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. def divi(x):
  5. return x / 100
  6.  
  7. def remai(x):
  8. return x % 100
  9.  
  10. def truncm(x):
  11. a0, a1 = divi(x), remai(x)
  12. result = list()
  13. result.append(a1)
  14. while a1 != 0:
  15. a0, a1 = divi(a0), remai(a0)
  16. result.append(a1)
  17. return result
  18.  
  19. def ab_terms_mod(a, b):
  20. la = len(a)
  21. maxm = la
  22. lb = len(b)
  23. if lb > maxm:
  24. maxm = lb
  25. term = []
  26. i = -1
  27. n = -1
  28. while (n != 0):
  29. n = 0
  30. i = i + 1
  31. for c, j in enumerate(range(i, -1, -1)):
  32. try:
  33. ac = a[c]
  34. except Exception as e:
  35. ac = 0
  36. try:
  37. bj = b[j]
  38. except Exception as e:
  39. bj = 0
  40. n = n + ac*bj
  41. term.append(n)
  42. return term
  43.  
  44. def main():
  45. T = int(input())
  46. bspace = " "
  47. U = []
  48. for _ in range(T):
  49. lists = raw_input().split()
  50. op = lists[0]
  51. list1 = map(int,lists[1:])
  52. a = list1[0]
  53. b = list1[1]
  54. if op == '<':
  55. if a < b:
  56. U.append(1)
  57. elif a == b:
  58. U.append(0)
  59. elif a > b:
  60. U.append(-1)
  61. elif op == '+':
  62. U.append(a + b)
  63. elif op == '-':
  64. if a < b:
  65. U.append(0)
  66. else:
  67. U.append(a - b)
  68. elif op == '*':
  69. U.append(a * b)
  70. elif op == '/':
  71. if b == 0:
  72. U.append([0, 0])
  73. else:
  74. U.append([a/b, a%b])
  75. elif op == '#':
  76. m = list1[2]
  77. r_a = truncm(a)
  78. r_b = truncm(b)
  79. tt = ab_terms_mod(r_a, r_b)
  80. le = len(tt)
  81. t = 0
  82. for c,i in enumerate(range(m, le)):
  83. t = t + (tt[i]* 100**c)
  84. U.append(t)
  85.  
  86. for n in U:
  87. if isinstance(n, list):
  88. print '{0}{1}{2}'.format(n[0],bspace,n[1])
  89. else:
  90. print '{0}'.format(n)
  91.  
  92. return
  93.  
  94. if __name__ == '__main__':
  95. main()
Success #stdin #stdout 0s 23296KB
stdin
15
< 1000 1999
< 9898 9898
< 1234 123
< 0 0
+ 1791593436984766559642626609333245051871 307634751338542477034677711517175
- 1000000000000000000000000000000000000000000000 1
- 9851454318615645743724544440468029862 40153566442954896526103872421591156
* 333333333 0
* 1 3333333335555
* 9999999999999999999999999999999999999999 999999999999999999999999999999999999999
/ 1 999999999999999999999999999999999999999999999
/ 999999999999999999999999999999999999999999999 2
/ 861564574372454444046802986230763475133854247703 6442954896526103872421591156
# 1010 2020 1
# 619665458372652911688999608 5642672187122910629212227277 6
stdout
1
0
-1
0
1791593744619517898185103644010956569046
999999999999999999999999999999999999999999999
9811300752172690847198440568046438706
0
3333333335555
9999999999999999999999999999999999999989000000000000000000000000000000000000001
0 1
499999999999999999999999999999999999999999999 1
133721962703322764598 5829723863328422309867552415
20400
3496569047280138337581751280571264068913704