Supongamos que tenemos un conjunto de codificadores.
Cada codificador tiene una calificación de y el número de medallas de oro , que habían ganado hasta ahora.
Una empresa de software quiere contratar exactamente tres codificadores para desarrollar una aplicación.
Para contratar a tres codificadores, desarrollaron la siguiente estrategia:
- Primero organizan los codificadores en orden ascendente de calificaciones y orden descendente de medallas de oro.
- De esta lista organizada, seleccionan los tres codificadores intermedios. Por ejemplo, si la lista organizada es seleccionan codificadores .
Ahora tenemos que ayudar a la empresa escribiendo un programa para esta tarea.
Entrada:
La primera línea contiene , es decir, el número de codificadores.
Luego, la segunda línea contiene las clasificaciones del th codificador.
La tercera línea contiene el número de medallas de oro que el codificador empacó .
Salida:
Muestre solo una línea que contenga la suma de las medallas de oro obtenidas por los tres codificadores que seleccionará la compañía.
Respuestas:
Se trata de un problema de seleccionar el -ésimo elemento más pequeño de la lista resuelto por una clase de algoritmos llamada la Selección Algoritmos . Existen algoritmos deterministas de selección de tiempo lineal para que su problema se pueda resolver en tiempo lineal seleccionando los elementos más pequeños º de la lista sin clasificar original.k n / 2 , n / 2 - 1 , n / 2 + 1
fuente