技巧:
    单维度套路贪心
思路:
    --------- A B ---------   改变A B 的顺序对前面和后面没人影响

实现:
package main
import (
    "fmt"
    "sort"
)

type Cow struct {
    t,d int
}

func main() {
    var n int 
    fmt.Scan(&n)
    c := make([]Cow, n)
    for i := 0; i < n; i ++ {
        fmt.Scan(&c[i].t,&c[i].d)
    }
    sort.Slice(c, func(i, j int) bool { return c[i].d * c[j].t > c[i].t * c[j].d})
    preTSum := c[0].t << 1
    ans := 0
    for i := 1; i < n; i ++ {
        ans += preTSum * c[i].d
        preTSum += c[i].t << 1
    }
    fmt.Println(ans)
}