题目链接:51Nod 1432 独木舟
题目大意:
题解:
按体重从小到大排序,两个指针分别指向头尾,从最重的开始分配船只,他可以和当前最轻的坐船,如果重量超了就自己坐船。
#include <algorithm>
#include <iostream>
using namespace std;
long long w[10010], n, m;
int main() {
ios::sync_with_stdio(false);
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> w[i];
}
sort(w + 1, w + 1 + n);
int cnt = 0;
int p = 1, q = n;
while (p <= q) {
if (w[p] + w[q] <= m) {
cnt++;
p++, q--;
} else {
cnt++;
q--;
}
}
cout << cnt << endl;
return 0;
}