fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n, kapasitas;
  7. cout << "Jumlah barang: ";
  8. cin >> n;
  9.  
  10. vector<int> bobot(n), nilai(n);
  11.  
  12. cout << "Masukkan bobot barang:\n";
  13. for(int i = 0; i < n; i++)
  14. cin >> bobot[i];
  15.  
  16. cout << "Masukkan nilai barang:\n";
  17. for(int i = 0; i < n; i++)
  18. cin >> nilai[i];
  19.  
  20. cout << "Masukkan kapasitas maksimum knapsack: ";
  21. cin >> kapasitas;
  22.  
  23. // Encoding biner representasi solusi
  24. vector<int> kode(n);
  25. cout << "Masukkan representasi biner solusi (0/1):\n";
  26. for(int i = 0; i < n; i++)
  27. cin >> kode[i];
  28.  
  29. int totalBobot = 0, totalNilai = 0;
  30.  
  31. // Hitung total berdasarkan encoding
  32. for(int i = 0; i < n; i++){
  33. if(kode[i] == 1){
  34. totalBobot += bobot[i];
  35. totalNilai += nilai[i];
  36. }
  37. }
  38.  
  39. // Output hasil
  40. cout << "\n=== HASIL ===" << endl;
  41. cout << "Total Bobot : " << totalBobot << endl;
  42. cout << "Total Nilai : " << totalNilai << endl;
  43.  
  44. if(totalBobot > kapasitas)
  45. cout << "Status : TIDAK VALID (Melebihi kapasitas)\n";
  46. else
  47. cout << "Status : VALID (Tidak melebihi kapasitas)\n";
  48.  
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0.01s 5304KB
stdin
8
3 10 6 7 9 10 7 5
1 10 8 1 7 8 9 18
35
stdout
Jumlah barang: Masukkan bobot barang:
Masukkan nilai barang:
Masukkan kapasitas maksimum knapsack: Masukkan representasi biner solusi (0/1):

=== HASIL ===
Total Bobot  : 0
Total Nilai  : 0
Status       : VALID (Tidak melebihi kapasitas)