Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include "heaps.h"
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. long int i;
  11. long int n_item,carga;
  12.  
  13. scanf("%li",&n_item); // Leer la cantidad de elementos
  14. float arreglo_precio[n_item+1]; // Arreglo para precios
  15. float arreglo_valor[n_item+1]; // Arreglo para valores
  16. float arreglo_relaciones[n_item+1];
  17. float arreglo_particiones[n_item+1];
  18. for (i = 1; i < n_item+1; i++)
  19. {
  20. arreglo_particiones[i] = 0;
  21. }
  22. for (i = 1; i < n_item+1; i++) scanf("%f",&arreglo_precio[i]);
  23. for (i = 1; i < n_item+1; i++) scanf("%f",&arreglo_valor[i]);
  24. for (i = 1; i < n_item+1; i++) arreglo_relaciones[i] = float(arreglo_valor[i]/arreglo_precio[i]);
  25. scanf("%li",&carga);
  26. arr_Heap heap_max(n_item+100);
  27. for (i = 1; i < n_item+1; i++) heap_max.insert(arreglo_relaciones[i],i);
  28. for (i = 1; i < n_item+1 ; i++)
  29. {
  30. printf("Carga restante: %li\n",carga);
  31. if (carga > 0)
  32. {
  33. if ((carga - arreglo_precio[heap_max.posMax()])>0)
  34. {
  35. arreglo_particiones[heap_max.posMax()] = 1.000;
  36. carga = carga - arreglo_precio[heap_max.posMax()];
  37. }
  38. else
  39. {
  40. arreglo_particiones[heap_max.posMax()] = (1.0*carga)/arreglo_precio[heap_max.posMax()];
  41. carga = carga - arreglo_precio[heap_max.posMax()]*arreglo_particiones[heap_max.posMax()];
  42. }
  43. }
  44. heap_max.removeMax();
  45. }
  46.  
  47. for (i = 1; i < n_item+1; i++)
  48. {
  49. printf("Paquete %li con peso %.0f de valor %.0f con particion %.6f\n",i,arreglo_precio[i],arreglo_valor[i],arreglo_particiones[i]);
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement