[Python-es] Las ambulancias
Alejandro
perezj en si.uji.es
Mie Nov 27 12:48:23 CET 2002
Una solución ?? No he hecho muchas pruebas :-)
from mx.DateTime import DateTime, oneDay
# Leemos y ordenamos el fichero para guardar
# en servicios un lista de tuplas con el inicio
# y final de cada servicio.
#
# Hay que guardar las cosas ordenadamente Chema !! ;-)
# que luego cuesta mucho recogerlas
servicios = []
for i in file( "SIMUL.TXT" ) :
try :
year = int(i[15:19])
mes = int(i[19:21])
dia = int(i[21:23])
horai = int(i[5:7])
minui = int(i[8:10])
horaf = int(i[10:12])
minuf = int(i[13:15])
if horai + minui + horaf + minuf == 0 :
raise
inicio = DateTime( year, mes, dia, horai, minui )
final = DateTime( year, mes, dia, horaf, minuf )
if inicio >= final :
final = final + oneDay
servicios.append( ( inicio, final ) )
except :
print "Linea incorrecta:", i
servicios.sort()
#
# Solucion
#
finales = []
maxser = activos = 0
for inicio, final in servicios :
finales.append( final )
finales.sort()
while finales and finales[0] <= inicio :
finales.pop( 0 )
activos -= 1
activos += 1
if activos > maxser :
maxser = activos
maxfec = inicio
print maxfec, maxser
--
Alejandro <perezj en si.uji.es>
UJI
Más información sobre la lista de distribución Python-es