ルクの競プロ部屋

学生の競プロ生活を見たい人はどぞ

Yukicoder灰<No.5A>

問題

問題はこちら
問題内容↓

最大L個のブロックが入る箱がある
ブロックの塊があるからそれらの塊がいくつ入るかを調べてください

解法

ソートして小さいものから詰めましょう

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (ll i = 0; i < (n); ++i)
#define rep1(i, n) for (ll i = 1; i < (n); ++i)
#define rrep(i, n) for (ll i = n; i > 0; --i)
#define bitrep(i, n) for (ll i = 0; i < (1 << n); ++i)
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define yesNo(b) ((b) ? "Yes" : "No")
using ll = long long;
using ull = unsigned long long;
using ld = long double;
string alphabet = "abcdefghijklmnopqrstuvwxyz";
string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const double pi = 3.141592653589793;
int smallMOD = 998244353;
int bigMOD = 1000000007;

int main()
{
    int l, n;
    cin >> l >> n;
    vector<int> A(n);
    rep(i, n) cin >> A[i];
    sort(all(A));
    int ans = 0, cnt = l;
    rep(i, n)
    {
        cnt -= A[i];
        if (cnt < 0)
            break;
        ans = i + 1;
    }
    cout << ans << endl;
    return 0;
}