Advertisement
frain8

Untitled

Nov 20th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. /* Dasproc C - 2019
  2. William Handi Wijaya
  3. 0087
  4.        
  5. Program untuk menentukan keuntungan maksimum yang bisa
  6. didapat jika harga barang yang dijual bersifat random
  7. dari beberapa pilihan harga.
  8. */
  9.  
  10.  
  11. #include <stdio.h>
  12. #include <string.h>
  13. #include <stdlib.h>
  14.  
  15. int jenis, pin;
  16. int *jumlah = NULL;
  17. int *harga = NULL;
  18. int *max_jumlah = NULL;
  19. int *max_harga = NULL;
  20. int sum = 0;
  21. void getInput();
  22. void sortJumlah();
  23. void sortHarga();
  24. void getSum();
  25.  
  26. int main(void)
  27. {
  28.     // Dapatkan test_case
  29.     int t;
  30.     scanf("%d", &t);
  31.  
  32.     for (int i = 0; i < t; i++)
  33.     {  
  34.         scanf("%d", &jenis);
  35.         jumlah = (int *) malloc(sizeof(int) * jenis);
  36.         harga = (int *) malloc(sizeof(int) * jenis);
  37.        
  38.         // Masukkan input
  39.         getInput();
  40.        
  41.         // urutkan jumlah
  42.         max_jumlah = (int *) malloc(sizeof(int) * jenis);
  43.         memset(max_jumlah, 0, sizeof(int) * jenis);
  44.         sortJumlah();
  45.  
  46.         // urutkan harga
  47.         max_harga = (int *) malloc(sizeof(int) * jenis);
  48.         memset(max_harga, 0, sizeof(int) * jenis);
  49.         sortHarga();
  50.  
  51.         // Dapatkan dan print sum
  52.         getSum();
  53.     }
  54. }
  55.  
  56. void getSum()
  57. {
  58.     int sum = 0;
  59.     for (int j = 0; j < jenis; j++)
  60.     {
  61.         sum += (max_harga[j] * max_jumlah[j]);
  62.     }
  63.     printf("%d\n", sum);
  64. }
  65.  
  66. void sortHarga()
  67. {
  68.     for (int j = 0; j < jenis; j++)
  69.     {
  70.         int tmp = 0;
  71.         for (int k = 0; k < jenis; k++)
  72.         {
  73.             if (harga[k] > tmp)
  74.             {
  75.                 tmp = harga[k];
  76.                 pin = k;
  77.             }
  78.         }
  79.         max_harga[j] = tmp;
  80.         harga[pin] = 0;
  81.     }
  82. }
  83.  
  84. void sortJumlah()
  85. {
  86.     for (int j = 0; j < jenis; j++)
  87.     {
  88.         int tmp = 0;
  89.         for (int k = 0; k < jenis; k++)
  90.         {
  91.             if (jumlah[k] > tmp)
  92.             {
  93.                 tmp = jumlah[k];
  94.                 pin = k;
  95.             }
  96.         }
  97.         max_jumlah[j] = tmp;
  98.         jumlah[pin] = 0;
  99.     }
  100. }
  101.  
  102. void getInput()
  103. {
  104.     for (int j = 0; j < jenis; j++)
  105.     {
  106.         scanf("%d", &jumlah[j]);
  107.     }
  108.     for (int j = 0; j < jenis; j++)
  109.     {
  110.         scanf("%d", &harga[j]);
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement