1020 月饼
注意:月饼的库存量和总售价不一定是整数!
package main
import (
"fmt"
"sort"
)
func main() {
var n int
var d float64
fmt.Scanf("%d %f", &n, &d)
arr := make([][]float64, n)
for i := 0; i < n; i++ {
arr[i] = make([]float64, 2)
}
for i := 0; i < n; i++ {
fmt.Scanf("%f", &arr[i][0])
}
for i := 0; i < n; i++ {
fmt.Scanf("%f", &arr[i][1])
}
sort.Slice(arr, func(i, j int) bool {
return arr[i][1]/arr[i][0] > arr[j][1]/arr[j][0]
})
ans := 0.0
for i := 0; i < n && d > 0; i++ {
if arr[i][0] > d {
ans += arr[i][1]/arr[i][0] * d
d = 0
} else {
ans += arr[i][1]
d -= arr[i][0]
}
}
fmt.Printf("%.2f\n", ans)
}