//詰めたものの”幅”(の合計)のみが重要。左から詰めていくことを考えると、 //同じ個数詰めたのなら、幅は小さいほうがよさそうだ。 //じゃあ貪欲に小さいほうから詰めていけばよいのでは? #include #include using namespace std; int l, n, a[10000]; int main() { int i; cin >> l >> n; for(i = 0; i < n; i++ ) cin >> a[i]; sort(a, a+n); int now = 0; for(i = 0; i < n; i++ ) { now += a[i]; if ( now > l ) break; } cout << i << endl; return 0; }