110,534
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
var r = 配货(180, new int[] { 100, 50, 30, 15,10});
foreach (var o in r)
{
Console.WriteLine("{0} : {1}", o.Key, o.Value);
}
}
static Dictionary<int, int> 配货(int m, int[] list)
{
var res = new Dictionary<int, int>();
Array.Sort(list);
Array.Reverse(list);
var i = 0;
var n = 0;
while (i < list.Length && m>0)
{
if (m >= list[i])
{
m -= list[i];
n++;
}
else
{
if (n > 0) res[list[i]] = n;
n = 0;
i++;
}
}
if (n > 0) res[list[i]] = n;
return res;
}