// n个类型,m个一组,类型数量为 list
const getRes = (n, m, list, index=0) => {
list.sort((a,b) => a-b) // 正序
const sum = list.reduce((p,c) => p+c, 0)
const res = Array(sum).fill().map(v => [])
while(list.length) {
const cur = list.length
const curNum = list.pop()
for(let i=0; i<curNum; i++) {
while(res[index+i].length >= m) index++
res[index+i].push(cur)
}
}
return res.reduce((p,c) => {
if(c.length === m) return p+1
return p
},0)
}
console.log(getRes(5, 3, [1,2,3,4,5]))
console.log(getRes(5, 4, [1,2,3,4,5]))
console.log(getRes(10,9, [1,19,13,4,16,12,5,8,14,6]))