Los premios de la feria
La asociación de una feria libre reparte al cierre unos cuantos premios entre los puestos a los que mejor les fue. Cada puesto declara su saldo del día en miles de pesos, y algunos declaran pérdida: llovió, o se les echó a perder la mercadería. La tesorera no quiere la tabla entera, quiere los mejores y nada más.
Qué hay que hacer
Lee los saldos de todos los puestos y escribe los k mayores, del mayor al menor. Si varios puestos declararon el mismo saldo y todos entran en el corte, ese saldo se escribe tantas veces como puestos lo declararon, porque cada premio es de un puesto distinto.
El archivo que te dan
La primera línea trae dos números separados por un espacio: n, cuántos puestos hay, y k, cuántos premios se reparten, con 1 <= k <= n <= 5000. Después vienen los n saldos, enteros entre -1000 y 100000.
El que tienes que escribir
k líneas, una por premio, con el saldo premiado y del mayor al menor. Solo el número: ni el lugar, ni de qué puesto era, ni signos de moneda.
Los casos que puedes ver
Hay 6 en total. Los demás se descubren fallando, como en el ramo.
el ejemplo del enunciado: los tres mejores
entrada
6 3 40 -15 220 7 220 95
salida
220 220 95
k igual a n: sale la lista entera de mayor a menor
entrada
5 5 -3 -50 12 0 -3
salida
12 0 -3 -3 -50
Tu programa
Recibe las dos rutas por argv, igual que en el ramo. Lo que escribas con fprintf es lo que se compara.
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv) {if (argc < 3) {fprintf(stderr, "uso: %s entrada salida\n", argv[0]);return 1;}/* Falta: abrir argv[1] con "r" y argv[2] con "w". *//* Falta: leer cuántos puestos hay y cuántos premios se reparten. *//* Falta: leer los saldos de los puestos. *//* Falta: conseguir que los k mayores queden localizados y en orden. *//* Falta: escribir esos k saldos, del mayor al menor. *//* Falta: cerrar los dos archivos antes de terminar. */return 0;}