Advertisement
Guest User

Untitled

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