Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. import math
  2. def schrage():
  3. mega_maszyna = []
  4.  
  5. file_handle = open('data.txt', 'r')
  6.  
  7. lines_list = file_handle.readlines()
  8.  
  9. zadania, maszyna = (int(val) for val in lines_list[0].split())
  10.  
  11. mega_kursor = [0] * maszyna
  12.  
  13.  
  14. dane = [[int(val) for val in line.split()] for line in lines_list[1:]]
  15.  
  16.  
  17. for i in range(1, maszyna + 1):
  18. mini_maszyna = [0] * zadania
  19.  
  20. j = i
  21. for i in range(0, zadania):
  22. mini_maszyna[i] = dane[i][j - 1]
  23.  
  24. mega_maszyna.append(mini_maszyna)
  25.  
  26.  
  27.  
  28.  
  29. t = 0
  30. k = 0
  31. c_max = 0
  32. G = [];
  33. N = list(range(0, zadania))
  34. lista_pomocnicza = []
  35. pi = [0] * zadania
  36. r = mega_maszyna[0]
  37. p = mega_maszyna[1]
  38. q = mega_maszyna[2]
  39.  
  40.  
  41.  
  42.  
  43. # --------------------------DEFINICJE--------------------------#
  44.  
  45.  
  46.  
  47.  
  48. q_kopia = q[::]
  49. Q = []
  50.  
  51. while ((G != []) or (N != [])):
  52.  
  53. while ((N != []) and (min(value for value in r if value != None) <= t)):
  54. e = min(value for value in r if value != None)
  55. e_arg = r.index(e)
  56. r[e_arg] = None
  57.  
  58. G.append(e_arg)
  59. N.remove(e_arg)
  60.  
  61.  
  62. for i in range(0, len(G)):
  63. x = q[G[i]]
  64. Q.append(x)
  65.  
  66. if G == []:
  67. t = min(value for value in r if value != None)
  68.  
  69. else:
  70. e = max(value for value in Q if value != None)
  71.  
  72. eq = Q.index(e)
  73. e_arg = G[eq]
  74.  
  75. q_kopia[e_arg] = None
  76.  
  77. pi[k] = e_arg
  78. k = k + 1
  79. t = t + p[e_arg]
  80. c_max = max(c_max, t + q[e_arg])
  81.  
  82. G.remove(e_arg)
  83.  
  84.  
  85. Q = []
  86. globals()['c_max'] = c_max
  87. globals()['pi'] = pi
  88. def schrage_przerwania():
  89.  
  90. mega_maszyna = []
  91.  
  92. file_handle = open('data.txt', 'r')
  93.  
  94. lines_list = file_handle.readlines()
  95.  
  96. zadania, maszyna = (int(val) for val in lines_list[0].split())
  97.  
  98. mega_kursor = [0] * maszyna
  99.  
  100. dane = [[int(val) for val in line.split()] for line in lines_list[1:]]
  101.  
  102.  
  103. for i in range(1, maszyna + 1):
  104. mini_maszyna = [0] * zadania
  105.  
  106. j = i
  107. for i in range(0, zadania):
  108. mini_maszyna[i] = dane[i][j - 1]
  109.  
  110. mega_maszyna.append(mini_maszyna)
  111.  
  112. t = 0
  113. k = 0
  114. c_max = 0
  115. G = [];
  116. N = list(range(0, zadania))
  117. lista_pomocnicza = []
  118. pi = [0] * zadania
  119. r = mega_maszyna[0]
  120. p = mega_maszyna[1]
  121. q = mega_maszyna[2]
  122.  
  123. r_core = r[::]
  124. p_core = p[::]
  125. q_core = q[::]
  126.  
  127. q[0] = math.inf
  128. l = 0
  129.  
  130. # --------------------------DEFINICJE--------------------------#
  131. q_kopia = q[::]
  132. Q = []
  133.  
  134. while ((G != []) or (N != [])):
  135.  
  136. while ((N != []) and (min(value for value in r if value != None) <= t)):
  137. e = min(value for value in r if value != None)
  138. e_arg = r.index(e)
  139.  
  140. G.append(e_arg)
  141. N.remove(e_arg)
  142.  
  143. if q[e_arg]>q[l]:
  144. p[l] = t - r[e_arg]
  145. t = r[e_arg]
  146. if p[l] > 0:
  147. G.append(l)
  148.  
  149. r[e_arg] = None
  150.  
  151.  
  152. if q[0] == math.inf:
  153. q[0] = q_core[0]
  154.  
  155.  
  156. for i in range(0, len(G)):
  157. x = q[G[i]]
  158. Q.append(x)
  159.  
  160. if G == []:
  161. t = min(value for value in r if value != None)
  162.  
  163. else:
  164. e = max(value for value in Q if value != None)
  165.  
  166. eq = Q.index(e)
  167. e_arg = G[eq]
  168.  
  169. l = e_arg
  170. t = t + p[e_arg]
  171. c_max = max(c_max, t + q[e_arg])
  172.  
  173. G.remove(e_arg)
  174.  
  175. Q = []
  176. P = mega_maszyna[1]
  177.  
  178. globals()['c_max'] = c_max
  179. globals()['pi'] = pi
  180.  
  181. #--------------------- INICJALIZACJA ---------------------
  182.  
  183. UB = 0
  184.  
  185. #--------------------------- 1 ---------------------------
  186.  
  187. schrage()
  188. U = c_max
  189.  
  190. #--------------------------- 2 ---------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement