#include <stdio.h>
typedef struct {
int w, v;
double r;
} Item;
int main( ) {
int n, cap;
Item a[ n] ;
for ( int i= 0 ; i< n; i++ ) {
printf ( "Berat dan nilai item %d: " , i
+ 1 ) ; scanf ( "%d %d" ,& a
[ i
] .
w ,& a
[ i
] .
v ) ; a[ i] .r = ( double ) a[ i] .v / a[ i] .w ;
}
for ( int i= 0 ; i< n- 1 ; i++ )
for ( int j= i+ 1 ; j< n; j++ )
if ( a[ i] .r < a[ j] .r ) {
Item t= a[ i] ; a[ i] = a[ j] ; a[ j] = t;
}
double total= 0 ;
for ( int i= 0 ; i< n && cap> 0 ; i++ ) {
int take = a[ i] .w <= cap ? a[ i] .w : cap;
total += take * a[ i] .r ;
cap -= take;
}
printf ( "Nilai total maksimum: %.2f\n " , total
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgdywgdjsKICAgIGRvdWJsZSByOwp9IEl0ZW07CgppbnQgbWFpbigpIHsKICAgIGludCBuLCBjYXA7CiAgICBwcmludGYoIkp1bWxhaCBpdGVtOiAiKTsgc2NhbmYoIiVkIiwgJm4pOwogICAgSXRlbSBhW25dOwogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgcHJpbnRmKCJCZXJhdCBkYW4gbmlsYWkgaXRlbSAlZDogIiwgaSsxKTsKICAgICAgICBzY2FuZigiJWQgJWQiLCZhW2ldLncsJmFbaV0udik7CiAgICAgICAgYVtpXS5yID0gKGRvdWJsZSlhW2ldLnYgLyBhW2ldLnc7CiAgICB9CiAgICBwcmludGYoIkthcGFzaXRhcyBrbmFwc2FjazogIik7IHNjYW5mKCIlZCIsJmNhcCk7CiAgICBmb3IoaW50IGk9MDtpPG4tMTtpKyspCiAgICAgICAgZm9yKGludCBqPWkrMTtqPG47aisrKQogICAgICAgICAgICBpZihhW2ldLnI8YVtqXS5yKXsKICAgICAgICAgICAgICAgIEl0ZW0gdD1hW2ldOyBhW2ldPWFbal07IGFbal09dDsKICAgICAgICAgICAgfQoKICAgIGRvdWJsZSB0b3RhbD0wOwogICAgZm9yKGludCBpPTA7aTxuICYmIGNhcD4wO2krKyl7CiAgICAgICAgaW50IHRha2UgPSBhW2ldLncgPD0gY2FwID8gYVtpXS53IDogY2FwOwogICAgICAgIHRvdGFsICs9IHRha2UgKiBhW2ldLnI7CiAgICAgICAgY2FwIC09IHRha2U7CiAgICB9CgogICAgcHJpbnRmKCJOaWxhaSB0b3RhbCBtYWtzaW11bTogJS4yZlxuIiwgdG90YWwpOwogICAgcmV0dXJuIDA7Cn0K