- - .是c语言纪念品分组Time Limit:1000MS Memory Limit:65536KTotal Sub

学习 时间:2026-04-08 23:35:52 阅读:669
- - .是c语言纪念品分组Time Limit:1000MS Memory Limit:65536KTotal Submit:49 Accepted:17Description元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作.为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数.为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少.你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目.Input第1行包括一个整数w,为每组纪念品价格之和的上限.第2行为一个整数n,表示购来的纪念品的总件数G,第3-n+2行每行包含一个正整数Pi (5

最佳回答

欢呼的钢笔

爱笑的小天鹅

2026-04-08 23:35:52

#include int main() {int w, n;while (scanf("%d%d", &w, &n) != EOF) {int i, j, money[30002], temp, count = 0;for (i = 0 ; i < n ; i++)scanf("%d", &money[i]);for (i = 1 ; i < n ; i++)for (j = 0 ; j < i ; j++)if (money[i] < money[j])temp = money[i], money[i] = money[j], money[j] = temp;i = 0, j = n - 1;while (n > 0) {if (i == j)n--, count++;else if (money[i] + money[j]

最新回答共有2条回答

  • 傲娇的酸奶
    回复
    2026-04-08 23:35:52

    #include int main() {int w, n;while (scanf("%d%d", &w, &n) != EOF) {int i, j, money[30002], temp, count = 0;for (i = 0 ; i < n ; i++)scanf("%d", &money[i]);for (i = 1 ; i < n ; i++)for (j = 0 ; j < i ; j++)if (money[i] 0) {if (i == j)n--, count++;else if (money[i] + money[j]

上一篇 根号下(a-b)^2怎么算

下一篇 谁知道这是什么电影?哪种类型的?