【51NOD】独木舟

【算法】贪心

【题解】比较经典,用l,r两个定位指针分别从左右向中间推进。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=10010;
int n,m,a[maxn];
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    int ans=0,l=1,r=n;
    while(l<r)
    {
        if(a[l]+a[r]<=m)ans++,l++,r--;
        else ans++,r--;
    }
    if(l==r)ans++;
    printf("%d",ans);
    return 0;
}
View Code

 

posted @ 2017-06-19 16:51  ONION_CYC  阅读(169)  评论(0编辑  收藏  举报