#140. 「Cookies」 饼干

「Cookies」 饼干

圣诞老人共有M个饼干,准备全部分给N个孩子。

每个孩子有一个贪婪度,第 i 个孩子的贪婪度为 g[i]。

如果有 a[i] 个孩子拿到的饼干数比第 i 个孩子多,那么第 i 个孩子会产生 g[i]*a[i]的怨气。

给定N、M和序列g,圣诞老人请你帮他安排一种分配方式,使得每个孩子至少分到一块饼干,并且所有孩子的怨气总和最小。

输入格式

第一行包含两个整数N,M。

第二行包含N个整数表示g_1g\_1~g_Ng\_N

输出格式

第一行一个整数表示最小怨气总和。

第二行N个空格隔开的整数表示每个孩子分到的饼干数,若有多种方案,输出任意一种均可。

数据范围

1N301 \le N \le 30,
NM5000N \le M \le 5000,
1g_i1071 \le g\_i \le 10^7

输入样例:

3 20
1 2 3

输出样例:

2
2 9 9

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解