算法训练 纪念品分组

#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
bool cmp(int a,int b){
	return a<b;
}
int main(){
	int w,n,ifir,iend,tol=0;
	scanf("%d%d",&w,&n);
	int value[n];
	ifir=0,iend=n-1;
	for(int i=0;i<n;i++){
		scanf("%d",&value[i]);
	}
	sort(value,value+n,cmp);
	while(ifir<=iend){
		//TODO double point 
		if(value[ifir]+value[iend]<=w&&(ifir!=iend)){
			tol++,ifir++,iend--;
		}else{
			tol++,iend--;
		}
	}
	printf("%d\n",tol);
	return 0;
}
posted @ 2022-01-27 11:51  ethon-wang  阅读(43)  评论(0编辑  收藏  举报