/* No.005 「数字のブロック」 解き方01 */ #include #include #define BLOCK_NUM_MAX 10000 int main() { int L; // 大きな箱の幅(1 <= L <= 10000) int N; // ブロックの数(1 <= N <= 10000) int W[BLOCK_NUM_MAX]; // 各ブロックの幅(1 <= W[i] <= L) std::cin >> L >> N; for(int i = 0; i < N; i++) { std::cin >> W[i]; } /* sort */ std::sort(W, W + N); int sum = 0; // 箱に入れたブロックの幅の合計 int answer = 0; // 答え for(int i = 0; i < N; i++) { sum += W[i]; if(sum <= L) { answer++; } else { break; } } std::cout << answer << std::endl; return 0; }