Naves


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 1G

Author:
Problem type
Allowed languages
C++

En una estación orbital ha llegado una flota de n naves que requieren mantenimiento urgente. Las naves no son idénticas: durante el mantenimiento, la nave con número i (0 \le i < n) debe permanecer exactamente t_i segundos en la bahía de atraque.

La estación dispone de bahías de atraque idénticas, cada una con capacidad ilimitada de naves. Debido a que cada bahía cuenta con una única compuerta de entrada y salida, las naves deben gestionarse según el principio LIFO (Last In, First Out): la última nave en entrar es la primera en salir.

Acoplar una nave a una bahía tarda exactamente 1 segundo, y su mantenimiento comienza inmediatamente después de completar el acoplamiento. De igual forma, desacoplar una nave tarda exactamente 1 segundo, y su mantenimiento termina justo antes de comenzar el desacoplamiento.

Una vez que una nave ha sido desacoplada de una bahía, no se puede acoplar ninguna otra nave en ella. Además, una bahía que ha sido utilizada no puede volver a utilizarse, ya que debe ser descontaminada y recargada de energía.

La estación puede decidir libremente el orden en que se realizan los mantenimientos y en qué bahía se atiende cada nave.

Desde el comando central de la estación quieren determinar cuál es el mínimo número de bahías necesarias para completar el mantenimiento de todas las naves sin necesidad de descontaminar ninguna bahía durante el proceso. Tu tarea es escribir un programa que determine dicho número mínimo de bahías.

Entrada

La primera línea de la entrada contiene un número entero n (1 \le n \le 200\,000) - el número de naves en la flota.

La segunda línea de la entrada contiene n enteros t_0, t_1, \ldots, t_{n-1} (1 \le t_i \le 10^9) - el tiempo que debe permanecer cada nave durante el mantenimiento.

Salida

Imprime el mínimo número de bahías necesarias para completar el mantenimiento de todas las naves sin necesidad de descontaminar ninguna bahía durante el proceso.

Subtareas

Esta tarea está compuesta por 6 subtareas.

Los puntos de una subtarea se otorgan solo si se aceptan todos los casos de esa subtarea.

Subtarea Puntos Dependencias Restricciones adicionales
1 12 n \le 3 -
2 17 n \le 7 1
3 15 t_i < t_{i+1} para todo i < n -
4 18 t_i es par para todo i < n -
5 20 n \le 1000 2
6 18 Sin restricciones adicionales 1-5

Ejemplos

Entrada 1
2
1 2
Salida 1
2
Entrada 2
3
3 6 1
Salida 2
1

Es suficiente con usar una bahía, acoplando las naves en el orden 1, 0, 2.

Entrada 3
5
1 2 4 3 2
Salida 3
3

Nos basta con usar 3 bahías. En la primera entran las naves 3 y 0, en la segunda 2 y 1, y en la tercera 4.


Comments

There are no comments at the moment.