fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n, kapasitas;
  6. cout << "Masukkan jumlah barang: ";
  7. cin >> n;
  8.  
  9. int berat[10], nilai[10];
  10. for (int i = 0; i < n; i++) {
  11. cout << "Barang ke-" << i+1 << " (berat dan nilai): ";
  12. cin >> berat[i] >> nilai[i];
  13. }
  14.  
  15. cout << "Masukkan kapasitas tas: ";
  16. cin >> kapasitas;
  17.  
  18. int maxNilai = 0;
  19. // Coba semua kombinasi barang (versi sederhana)
  20. for (int i = 0; i < (1 << n); i++) {
  21. int totalBerat = 0, totalNilai = 0;
  22. for (int j = 0; j < n; j++) {
  23. if (i & (1 << j)) {
  24. totalBerat += berat[j];
  25. totalNilai += nilai[j];
  26. }
  27. }
  28. if (totalBerat <= kapasitas && totalNilai > maxNilai)
  29. maxNilai = totalNilai;
  30. }
  31.  
  32. cout << "\nNilai maksimum yang bisa dibawa: " << maxNilai << endl;
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0s 5320KB
stdin
5
5 4 7 8 10
10 5 7 12 8
20
stdout
Masukkan jumlah barang: Barang ke-1 (berat dan nilai): Barang ke-2 (berat dan nilai): Barang ke-3 (berat dan nilai): Barang ke-4 (berat dan nilai): Barang ke-5 (berat dan nilai): Masukkan kapasitas tas: 
Nilai maksimum yang bisa dibawa: 21