



from bisect import bisect
from itertools import accumulate



def 		lowerCAmelCase__    (					UpperCamelCase_				:       Optional[Any] ,       UpperCamelCase_				:       Optional[int] ,       UpperCamelCase_				:       List[str] ,       UpperCamelCase_				:       Any	)->  List[str]:
    A__		 =					sorted(zip(UpperCamelCase_ ,       UpperCamelCase_	) ,       key=lambda UpperCamelCase_	: x[0] / x[1] ,       reverse=UpperCamelCase_	)
    A__ ,	A__		 =					[i[0] for i in r], [i[1] for i in r]
    A__		 =					list(accumulate(UpperCamelCase_	)	)
    A__		 =					bisect(UpperCamelCase_ ,       UpperCamelCase_	)
    return (
        0
        if k == 0
        else sum(vl[:k]	) + (w - acc[k - 1]) * (vl[k]) / (wt[k])
        if k != n
        else sum(vl[:k]	)
    )


if __name__ == "__main__":
   import doctest

   doctest.testmod()





import numpy as np



def 		lowerCAmelCase__    (					UpperCamelCase_				:       np.array	)->  np.array:
    return 1 / (1 + np.exp(-vector	))



def 		lowerCAmelCase__    (					UpperCamelCase_				:       np.array	)->  np.array:
    return vector * sigmoid(1.702 * vector	)


if __name__ == "__main__":
   import doctest

   doctest.testmod()
