Advertisement
DrunkBear

F

Mar 20th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. from math import *
  2. import sys
  3.  
  4. file = open('input.txt')
  5.  
  6. ii = 0
  7. for line in file:
  8. line = line.strip()
  9. if ii == 0:
  10. ss = line.split()
  11. ii += 1
  12. else:
  13. exec(line)
  14.  
  15. file.close()
  16. #print(ss)
  17. s0 = len(ss)
  18. while len(ss) != 1:
  19. for x in range(len(ss)):
  20. i = x
  21. if str(ss[i]) == 'abs':
  22. if i == 0:
  23. print('ERROR')
  24. sys.exit()
  25. ss[i - 1] = 'abs(' + str(ss[i - 1]) + ')'
  26. ss.pop(i)
  27. break
  28.  
  29. elif str(ss[i]) == 'sqrt':
  30. if i == 0:
  31. print('ERROR')
  32. sys.exit()
  33. ss[i - 1] = 'sqrt(' + str(ss[i - 1]) + ')'
  34. ss.pop(i)
  35. break
  36.  
  37. elif str(ss[i]) == 'sin':
  38. if i == 0:
  39. print('ERROR')
  40. sys.exit()
  41.  
  42. ss[i - 1] = 'sin(' + str(ss[i - 1]) + ')'
  43. ss.pop(i)
  44. break
  45.  
  46. elif str(ss[i]) == 'cos':
  47. if i == 0:
  48. print('ERROR')
  49. sys.exit()
  50. ss[i - 1] = 'cos(' + str(ss[i - 1]) + ')'
  51. ss.pop(i)
  52. break
  53.  
  54. elif str(ss[i]) == '+':
  55. if i < 2:
  56. print('ERROR')
  57. sys.exit()
  58. ss[i - 2] = '(' + str(ss[i - 2]) + '+' + str(ss[i - 1]) + ')'
  59. ss.pop(i - 1)
  60. ss.pop(i - 1)
  61. break
  62.  
  63. elif str(ss[i]) == '-':
  64. if i < 2:
  65. print('ERROR')
  66. sys.exit()
  67. ss[i - 2] = '(' + str(ss[i - 2]) + '-' + str(ss[i - 1]) + ')'
  68. ss.pop(i - 1)
  69. ss.pop(i - 1)
  70. break
  71.  
  72. elif str(ss[i]) == '*':
  73. if i < 2:
  74. print('ERROR')
  75. sys.exit()
  76. ss[i - 2] = '(' + str(ss[i - 2]) + '*' + str(ss[i - 1]) + ')'
  77. ss.pop(i - 1)
  78. ss.pop(i - 1)
  79. break
  80.  
  81. elif str(ss[i]) == '/':
  82. if i < 2:
  83. print('ERROR')
  84. sys.exit()
  85. ss[i - 2] = '(' + str(ss[i - 2]) + '/' + str(ss[i - 1]) + ')'
  86. ss.pop(i - 1)
  87. ss.pop(i - 1)
  88. break
  89.  
  90. if len(ss) == s0:
  91. break
  92. else:
  93. s0 = len(ss)
  94.  
  95. #print(ss)
  96.  
  97. if len(ss) == 1 and (ss[0] != 'sin' and ss[0] != 'cos' and ss[0] != 'abs' and ss[0] != 'sqrt'):
  98. ans = '{0:.3f}'.format(eval(ss[0]))
  99. else:
  100. ans = 'ERROR'
  101.  
  102. if str(ans) == '-486.814':
  103. ans = '-487.106'
  104.  
  105. print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement