srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

yukicoder No.5 数字のブロック

問題

問題概要

省略

解法

幅が小さいものから貪欲に選んでいけばいい。

ミス

なし。

コード

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
#define rep(i,n) for(int i=0;i<(n);i++)

int main(void){
    int l, n; cin >> l >> n;
    vector<int> w(n);
    rep(i, n) cin >> w[i];
    sort(w.begin(), w.end());
    int ans = 0;
    rep(i, n){
        if(l >= w[i]){
            ans++;
            l -= w[i];
        }else{
            break;
        }
    }
    printf("%d\n", ans);
}