排个序就搞定了。
不过这题我忘记判-1的情况了,果然还是得小心啊
#include <iostream>
#include <string>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <stack>
#define MAX 105
#define INF 0x3f3f3f3f
using namespace std;
int main() {
freopen("a.txt", "r", stdin);
freopen("b.txt", "w", stdout);
int k, a[15];
cin >> k;
for (int i = 1; i <= 12; ++i) {
cin >> a[i];
}
sort(a + 1, a + 13);
int c = 0;
for (int i = 12; i >= 1; --i) {
if (k <= 0) break;
k -= a[i];
c++;
}
if (k > 0) {
cout << -1 << endl;
}
else {
cout << c << endl;
}
return 0;
}