Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Dasproc C - 2019
- William Handi Wijaya
- 0087
- Program untuk menentukan keuntungan maksimum yang bisa
- didapat jika harga barang yang dijual bersifat random
- dari beberapa pilihan harga.
- */
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int jenis, pin;
- int *jumlah = NULL;
- int *harga = NULL;
- int *max_jumlah = NULL;
- int *max_harga = NULL;
- int sum = 0;
- void getInput();
- void sortJumlah();
- void sortHarga();
- void getSum();
- int main(void)
- {
- // Dapatkan test_case
- int t;
- scanf("%d", &t);
- for (int i = 0; i < t; i++)
- {
- scanf("%d", &jenis);
- jumlah = (int *) malloc(sizeof(int) * jenis);
- harga = (int *) malloc(sizeof(int) * jenis);
- // Masukkan input
- getInput();
- // urutkan jumlah
- max_jumlah = (int *) malloc(sizeof(int) * jenis);
- memset(max_jumlah, 0, sizeof(int) * jenis);
- sortJumlah();
- // urutkan harga
- max_harga = (int *) malloc(sizeof(int) * jenis);
- memset(max_harga, 0, sizeof(int) * jenis);
- sortHarga();
- // Dapatkan dan print sum
- getSum();
- }
- }
- void getSum()
- {
- int sum = 0;
- for (int j = 0; j < jenis; j++)
- {
- sum += (max_harga[j] * max_jumlah[j]);
- }
- printf("%d\n", sum);
- }
- void sortHarga()
- {
- for (int j = 0; j < jenis; j++)
- {
- int tmp = 0;
- for (int k = 0; k < jenis; k++)
- {
- if (harga[k] > tmp)
- {
- tmp = harga[k];
- pin = k;
- }
- }
- max_harga[j] = tmp;
- harga[pin] = 0;
- }
- }
- void sortJumlah()
- {
- for (int j = 0; j < jenis; j++)
- {
- int tmp = 0;
- for (int k = 0; k < jenis; k++)
- {
- if (jumlah[k] > tmp)
- {
- tmp = jumlah[k];
- pin = k;
- }
- }
- max_jumlah[j] = tmp;
- jumlah[pin] = 0;
- }
- }
- void getInput()
- {
- for (int j = 0; j < jenis; j++)
- {
- scanf("%d", &jumlah[j]);
- }
- for (int j = 0; j < jenis; j++)
- {
- scanf("%d", &harga[j]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement