比赛 小练习赛:B组 评测结果 WWAWWWWWWWA
题目名称 纪念品分组 最终得分 18
用户昵称 fyb 运行时间 0.016 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2014-10-21 20:36:27
显示代码纯文本
#include <stdio.h>

#define PMIN 5
#define PMAX 200

int pmap[PMAX-PMIN+1];

int main(){
	int w,n;
	int num;
	int p;
	int i,j;

	freopen("group.in","r",stdin);
	freopen("group.out","w",stdout);

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

	for(i=0;i<n;i++){
		scanf("%d",&p);
		getchar();
		pmap[p-PMIN]++;
	}

	num=n;

	for(i=PMAX-PMIN;i>PMIN-1;i--){
		if(pmap[i]==0)continue;
		for(j=i-1;j>PMIN-1;j--){
			if(pmap[j]==0)continue;
			if(PMIN+i+PMIN+j<=w){
				if(pmap[i]>pmap[j]){
					pmap[i]-=pmap[j];
					num-=pmap[j];
					pmap[j]=0;
				}else{
					pmap[j]-=pmap[i];
					num-=pmap[i];
					pmap[i]=0;
					break;
				}
			}
		}
	}

	printf("%d",num);
	return 0;
}