package main import ( "fmt" ) func main() { n := 0 fmt.Scanf("%d", &n) weight, size := make([]int, n), make([]int, n) for i := 0; i < n; i++ { fmt.Scanf("%d", &weight[i]) } for i := 0; i < n; i++ { // 此处不能使用Scanf("%d", &size[i]) 测试用例显示是这样 fmt.Scan(&size[i]) } mp := make(map[int]bool, 0) res := make([]int, 0) res = append(res, 0) for i := 0; i < n; i++ { for j := 1; j <= size[i]; j++ { for _, item := range res { w := item + weight[i] if _, ok := mp[w]; !ok { res = append(res, w) mp[w] = true // if sum == 12091 { // fmt.Println(size, "-=---", i,j, item) // } } } } } fmt.Println(len(res)) }