【51Nod】1432 独木舟

来源:互联网 发布:纪元1404 类似 知乎 编辑:程序博客网 时间:2024/05/17 03:17

题意

n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?

解题思路

每一回考虑体重最重的人跟最轻的人能不能上,不能就最重的人上,能就两个人上。

参考代码

#include <iostream>#include <algorithm>using namespace std;#define MAXN 10000+5int 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;}