Supervisor de cable de red

Descripción Los
residentes de Wonderland decidieron organizar una competencia de programación regional. El comité de árbitros es totalmente voluntario y prometen organizar el juego más justo de la historia. Decidieron conectar las computadoras de los jugadores en una topología en estrella, es decir, conectarlas a un solo servidor central. Para organizar este juego completamente justo, el presidente del comité de árbitros propuso que las computadoras de todos los jugadores se coloquen equidistantemente alrededor del servidor.

Para comprar un cable de red, el comité de árbitros contactó a un proveedor local de soluciones de red y le pidió que proporcionara una cierta cantidad de cables de red de igual longitud. El comité de árbitros espera que cuanto más largo sea el cable de red, mejor, de modo que la distancia entre los jugadores pueda ser lo más lejos posible.

El supervisor de cable de red de la compañía asumió esta tarea. Él conoce la longitud de cada cable en el inventario (precisión de centímetros), y siempre que le diga la longitud del cable (precisión de centímetros), puede completar el corte del cable. Sin embargo, esta vez, no se conocía la longitud de cable de red requerida, lo que dejó al administrador de cable de red perdido.

Debe escribir un programa para ayudar al supervisor de cable de red a determinar la longitud de cable de red más larga y cortar el cable de red en existencia de acuerdo con esta longitud, para poder obtener el número especificado de cables de red.

Entrada La
primera línea contiene dos enteros N y K, separados por un solo espacio. N (1 <= N <= 10000) es el número de cables de red en el inventario, y K (1 <= K <= 10000) es el número de cables de red necesarios.
Las siguientes N líneas, un número para cada línea, son la longitud de cada cable de red en el inventario (unidad: metros). La longitud de todos los cables de red es de al menos 1 my como máximo 100 km. Todas las longitudes en la entrada son precisas en centímetros, es decir, se retienen en dos decimales.
Salida El
supervisor de cable de red puede cortar la longitud máxima del número especificado de cables de red (unidad: medidor) de los cables de red en stock. Debe ser preciso a centímetros, es decir, retenido a dos decimales.
Si no puede obtener el número especificado de cables de red con una longitud de al menos 1 cm, debe generar "0.00" (sin comillas).
Entrada de muestra
4 11
8.02
7.43
4.57
5.39
Salida de muestra
2.00

#include <iostream>
using namespace std;
int sz[10010];
int l = 0, r = 1E7, n, k;

int main() {
    double temp;
    scanf("%d %d", &n, &k);
    for (int i = 0; i < n; ++i) {
        scanf("%lf", &temp);
        sz[i] = temp * 100;
//        printf("%d",sz[i]);
    }
    while (l < r) {
        int mid = (l + r + 1) / 2;
        int num = 0;
        for (int i = 0; i < n; ++i) {
            num += sz[i] / mid;
        }
        if (num >= k) {
            l = mid;
        } else {
            r = mid - 1;
        }
    }
    printf("%.2lf", l / 100.0);
}
Publicado 163 artículos originales · elogiado 18 · visitas 7683

Supongo que te gusta

Origin blog.csdn.net/xcdq_aaa/article/details/105455034
Recomendado
Clasificación