Saltar al contenido

Ni uno de más, ni uno de menos

Enunciado

La empresa reparte 5000 de las ganancias del año entre toda su gente, Carmen incluida, en proporción al salario. Se paga en unidades enteras, y redondear la parte de cada quien no sirve: las nueve partes redondeadas suman 5001.

Contabilidad lo hace así. Cada persona recibe su parte sin los decimales. Las unidades que quedan sin repartir se dan de una en una, empezando por quien perdió la fracción más grande; entre dos fracciones iguales, primero quien va antes por orden alfabético. A Paula le tocan 729.54: tiene 729 seguros y espera turno con su .54.

Muestra el nombre de cada persona y lo que recibe, en ese orden, de quien más recibe a quien menos y, si empatan, por nombre. La suma tiene que dar 5000 justos, con estos salarios y con los que haya mañana.

Lo que tiene que devolver

Estas filas, en este orden

nombrerecibe
Carmen925
Paula729
Marco676
Lidia534
Samuel534
Fabio463
Greta427
Nadia374
Rita338

Es lo que sale con los datos de la base de práctica del reto. Los nombres de las columnas no cuentan, las tuyas pueden llamarse como quieras: cuenta cuántas son y en qué orden van. Además de esta, el reto tiene pruebas ocultas con otros datos, que se revelan al enviar tu solución.

Empiezas con esto

SQL

SELECT nombre, salario,
  SUM(salario) OVER () AS total
FROM empleados
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(2ⁿ)

Ver todos los retos →