【51NOD】独木舟

【算法】贪心

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

#include
#include
#include
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

 

转载于:https://www.cnblogs.com/onioncyc/p/7049471.html

你可能感兴趣的:(【51NOD】独木舟)