Run ID:3995
提交时间:2024-07-24 09:27:34
#include <stdio.h> #include <stdlib.h> #define MAX_N 1000 // 比较函数用于 qsort 排序 int compare(const void *a, const void *b) { return (*(int*)a - *(int*)b); } int main() { int w, n; int prices[MAX_N]; // 读取输入 scanf("%d", &w); // 组的价格上限 scanf("%d", &n); // 纪念品总数 for (int i = 0; i < n; i++) { scanf("%d", &prices[i]); // 纪念品的价格 } // 排序 qsort(prices, n, sizeof(int), compare); int left = 0, right = n - 1; int groups = 0; // 贪心配对 while (left <= right) { if (prices[left] + prices[right] <= w) { left++; } right--; groups++; } // 输出最少的分组数目 printf("%d\n", groups); return 0; }