讨论 / 典型的贪心算法
沧海一声喵 2018-02-01 06:53:04
点我顶贴 收藏 删除
先从小到大排序,再从头尾向中间靠拢

#include <cstdio>

#include <algorithm>

using namespace std;

int main(){

int i,j,n,w,a[30001],num=0;

scanf("%d%d",&w,&n);

for(i=1;i<=n;i++) scanf("%d",&a[i]);

sort(a+1,a+n+1);

i=1;j=n;

while(i<j){

if(a[i]+a[j]<=w){

i++;j--;}

else j--;

num++;}

if(i==j) num++;

printf("%d",num);

return 0;}

查看更多回复
提交回复