Я хотел бы спросить, может ли кто-нибудь помочь мне с кодом Python. Недавно я полностью переписал свой предыдущий код, хотя он до сих пор доставляет мне неприятности.
Речь идет о двух лекциях — добровольной V и обязательной P. Обязательные проходят между двумя корпусами I и M. Раньше, между и после обязательных лекций являются добровольными. Цель состоит в том, чтобы получить как можно больше добровольных.
Если есть добровольные до первого обязательного и после последнего обязательного, все они в сумме составляют maxV. Если между двумя обязательными лекциями, которые проводятся в одном здании, есть лекции, все добровольные в сумме составляют maxV. Если есть добровольные между двумя обязательными, между разными зданиями, мне приходится считать 40-минутный переход между зданиями - некоторые добровольные лекции не успеют.
В этой записи можно пройти 194 возможных факультатива. На выходе получаю 193. Может ли кто-нибудь посоветовать мне, что у меня не так??
with open("02.in", "r") as fp: # nacteni do 2D pole
l = fp.readline().strip().split() # strip - odstranění bílých znaků
# split - rozdělení řádku na slova, mění řetězec na list
nP = int(l[0])
nV = int(l[1])
P = [None] * nP
V = [None] * nV
for i in range(0, nP):
a = fp.readline().strip().split()
P = [int(a[0]), int(a[1]), a[2]]
for i in range(0, nV):
a = fp.readline().strip().split()
V = [int(a[0]), int(a[1])]
maxV = []
# V before the first compulsory
for m in range(0, nV):
if V[m][0] < P[0][0]:
maxV.append(m)
# V between the compulsory, the same buildings
misto = P[0][2]
x = P[0][1]
for i in range(0, nP):
for m in range(0, nV):
if x < V[m][0] and V[m][1] < P[0] and misto == P[2]:
maxV.append(m)
x = P[1]
misto = P[2]
# V between the compulsory, different buildings
pocatek = V[0][1] # Inicializace počátečního času
for i in range(0, nP):
for m in range(0, nV):
if x < V[m][0] and V[m][1] + 40
Подробнее здесь: https://stackoverflow.com/questions/783 ... tures-code