Run ID:163216

提交时间:2026-10-24 15:57:15

#include <iostream> #include <algorithm> using namespace std; const int MAXN = 30010; int a[MAXN]; int main() { int w, n; cin >> w; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } sort(a, a + n); int l = 0, r = n - 1; int ans = 0; while (l <= r) { if (a[l] + a[r] <= w) { // 最便宜+最贵凑一组 l++; r--; } else { // 最贵单独一组 r--; } ans++; } cout << ans << endl; return 0; }