/*就是一超级大水题。没的说。
排完序后每次去最大和最小值的和,如果大于给定数,则最大的置0.*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[100005];
int main()
{
int n,l;
while(scanf("%d",&n)==1)
{
scanf("%d",&l);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
int count=0;
int p=n-1,q=0;
while(p>=q)
{
if(a[p]+a[q]>l)
{
count++;
p--;
}
else
{
count++;
p--;
q++;
}
}
printf("%d\n",count);
}
return 0;
}
Bin Packing hoj
最新推荐文章于 2018-09-29 22:35:27 发布