Order
题号:NC200576
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

工厂接到了n份订单,每份订单的数量为a_i件产品,工厂每天只能生产m件产品。
如果第i份订单在第d天被完成,那么我们称订单的完成天数为d_i
经理想所有订单被完成的天数的总和越小越好。请你帮他安排一下订单的完成顺序,
并计算一下这个总和。

输入描述:

第一行是一个整数,表示样例的个数。

每个样例的第一行是两个整数,表示订单数与工厂每天能生成的产品数。
第二行是n个整数,表示第i份订单的数量。

输出描述:

依次输出样例的结果,为一个整数。
示例1

输入

复制
2
3 5
3 4 5
3 4
1 1 1

输出

复制
6
3

说明

第一个样例,可以直接按照原始顺序生产,3个订单分别完成于第1天,第2天,第3天,总和为6。<br/>
第二个样例,顺序没关系,第一天就能全部完成,所以总和为3。