#include #include #include using namespace std;

int main() { int m, n; cin >> m >> n;

vector<int> workers(n);
for (int i = 0; i < n; i++) {
    cin >> workers[i];
}

sort(workers.begin(), workers.end(), greater<int>());

int days = 0;
int sum = 0;
for (int i = 0; i < n; i++) {
    sum += workers[i];
    days++;
    if (sum >= m) {
        break;
    }
}

if (sum < m) {
    cout << "NO" << endl;
} else {
    cout << days << endl;
}

return 0;
描述某工厂有n个零件加工的师傅每位师傅每天能够加工出不同数量的零件。现有m个零件要求一天加工完请问该工厂最少需要派几个师傅来完成这次零件加工任务如果安排所有的师傅都参与加工也不能在一天内完成任务请输出NO。4271输入描述第一行有两个整数用空格隔开;第一个整数代表要加工的总零件个数mm=10^6第二个整数代表工厂的零件加工师傅的数量nn=100。第二行有n个整数分别代表每个师傅每天能够加工出来的零

原文地址: http://www.cveoy.top/t/topic/iGZp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录