Editorial for Papitas fritas


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: leocar

Solución de Papas Fritas:

Puede obtener 32 puntos simulando comandos y moviendo partes en la segunda cinta con segundo.

Tratando de obtener una solución más rápida, notamos que el orden se procesa en orden el tiempo no es el más oportuno: una vez que se reciben nuevos pedidos, pueden afectar cualquier cosa otro pedido anterior. Podemos hacer la pregunta de encontrar una orden de procesamiento que tener la propiedad de que una vez que se resuelve un comando, la respuesta para este comando permanece Igual hasta el final del programa.

Un orden que naturalmente se presta a este requisito es la clasificación en orden ascendente después de posición del cliente. Una vez que obtuve las respuestas para esos comandos NR que involucran a los clientes Lo más cercano a la cocina, podemos encontrar la respuesta y (NR + 1) mandarla nuevamente.

será permanente, porque en general un orden particular solo puede verse afectado por comandos hechos desde posiciones más pequeñas.

Así que veamos cómo determinamos la respuesta para el comando de posición mínima. Si esto el comando está definido por TT, PP, entonces podría satisfacerse con cualquier comando que tiene T (i) + D + PP> = TT (cualquier porción T (i) más pequeña ya habría pasado el asiento del objetivo delantero) que había hecho el pedido). De estos, la respuesta estará dada por el comando con el mínimo T (i).

En otras palabras, debemos encontrar el tiempo T (i) más pequeño con la propiedad que: T (i)> = TT - D - PP

La respuesta será entonces T (i) + D + PP. Luego tendremos que eliminar este comando del conjunto. Pedidos que pueden ser respuestas. Soluciones que buscan y borran estos valores a lo largo del tiempo.

Lineal puede obtener 57 puntos. Para una solución más rápida, se requieren estas operaciones.

Realizar en tiempo logarítmico. Esto se puede hacer con un árbol de intervalos o con contenedor STL std :: set <>.

Otra solución, en el doble sentido de la anterior, implica la creación de dos tipos eventos: la aparición de un comando en la cinta, respectivamente, el inicio de la disponibilidad de un cliente tomar cualquier parte delante de él. Estos eventos serán seguidos en orden ascendente tomara tiempo, y para cada pedido será hasta qué cliente llegará. Generalmente, una orden será llega al cliente con el índice mínimo de aquellos disponibles en ese momento. Entonces el cliente o debe ser eliminado del grupo de clientes disponibles. Las soluciones que buscan este mínimo y el mismo.

Eliminar en tiempo lineal también puede obtener 57 puntos. Se puede obtener una solución más rápida. realizando estas operaciones con un montón o contenedor STL std :: set <>.


Comments

There are no comments at the moment.