#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