Page 259 - Modul Ajar Informatika SMA XII
P. 259

#include <vector>
                 #include <algorithm>
                 int main()

                 {
                 int n;
                 // Membaca masukan
                 scanf(“%d”, &n);
                 std::vector<float> bobot;
                 std::vector<float> nilai;
                 float kapasitas;
                 for(int i=0; i<n; i++)
                 {
                 float bobot_sekarang;
                 scanf(“%f”, &bobot_sekarang);
                 bobot.push_back(bobot_sekarang);

                 }
                 for(int i=0; i<n; i++)
                 {
                 float nilai_sekarang;
                 scanf(“%f”, &nilai_sekarang);
                 nilai.push_back(nilai_sekarang);
                 }
                 scanf(“%f”, &kapasitas);

                 // Menghitung rasio nilai/bobot
                 std::vector<float> nilai_per_bobot;
                 for(int i=0; i<n; i++)
                 {
                 nilai_per_bobot.push_back(nilai[i]/bobot[i]);
                 }
                 // Mengurutkan barang berdasarkan nilai/bobot (menurun)
                 std::vector<int> index;
                 for(int i=0; i<n; i++)
                 index.push_back(i);
                 sort(index.begin(), index.end(), [&nilai
                 per_bobot](int index1, int index2)

                 {
                 return nilai_per_bobot[index1] > nilai_per_bobot[index2];
                 }
                 );
                 float total_bobot_terpilih = 0;
                 float total_nilai_terpilih = 0;
                 // Memilih barang sampai mendapatkan nilai optimal
                 for (int i=0; i<n; i++)
   254   255   256   257   258   259   260   261   262   263   264