fork download
  1. def UcitajRecnik():
  2. d = {}
  3. u = input()
  4. u = u.replace(";", ",")
  5. u= u.split(",")
  6. for i in range(0, len(u), 4):
  7. d[u[i]] = [u[i+1], u[i+2], u[i+3]]
  8. return d
  9.  
  10. def UcitajIzraz():
  11. iz = " ".join(input().split())
  12. print(iz)
  13. return iz
  14.  
  15. def ObradiIzraz(izraz, d):
  16. lista = izraz.split(" ")
  17. while(len(lista) > 1):
  18. s, poz = IzaberiOperator(lista, d)
  19. if(d[s][0] == '2'):
  20. lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + " " + lista[poz+1] + ")"
  21. lista.pop(poz + 1)
  22. lista.pop(poz - 1)
  23. #print(lista)
  24. elif(d[s][2] == 'R'):
  25. lista[poz] = "(" + lista[poz] + " " + lista[poz+1] + ")"
  26. lista.pop(poz+1)
  27. else:
  28. lista[poz] = "(" + lista[poz-1] + " " + lista[poz] + ")"
  29. lista.pop(poz-1)
  30. return lista
  31.  
  32. def IzaberiOperator(lis, d):
  33. pos = 0
  34. prio = 0
  35. smer = ""
  36. for i in range(len(lis)):
  37. if(lis[i] not in d.keys()):
  38. continue
  39. else:
  40. if int(d[lis[i]][1]) > prio:
  41. prio, pos, smer = int(d[lis[i]][1]), i, d[lis[i]][2]
  42. elif int(d[lis[i]][1]) == prio:
  43. if d[lis[i]][2] == 'L':
  44. if smer == 'R' or (smer == 'L' and i < pos):
  45. prio, pos, smer = int(d[lis[i]][1]), i, d[lis[i]][2]
  46. elif smer == 'R' and pos > i:
  47. prio, pos, smer = int(d[lis[i]][1]), i, d[lis[i]][2]
  48.  
  49. return lis[pos], pos
  50. def IspisiRezultat(lista):
  51. print(lista[0],end = '')
  52. dit = UcitajRecnik()
  53. print(dit.keys())
  54. izraz = UcitajIzraz()
  55. lista = ObradiIzraz(izraz, dit)
  56. IspisiRezultat(lista)
  57.  
Success #stdin #stdout 0.11s 14104KB
stdin
#,1,4,R;+,2,2,L;-,2,2,L;/,2,3,L;**,2,4,L
cnt + # diff - e ** num / den
stdout
dict_keys(['#', '+', '-', '/', '**'])
cnt + # diff - e ** num / den
((cnt + (# diff)) - ((e ** num) / den))