题意
n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?
解题思路
每一回考虑体重最重的人跟最轻的人能不能上,不能就最重的人上,能就两个人上。
参考代码
#include <iostream>
#include <algorithm>
using namespace std;
#define MAXN 10000+5
int a[MAXN];
int main(){
int n,m;
while (cin>>n>>m){
for (int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
int l=0,r=n-1;
int ans=0;
while (l<=r){
if (l==r){
ans++;
break;
}
if (a[l]+a[r]<m) l++;
r--;
ans++;
}
cout<<ans<<endl;
}
return 0;
}