ACdream 1073
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int i,n,exp[1024],a[10],ans,cnt,now;
while(~scanf("%d",&n))
{
memset(exp,0,sizeof(exp));
scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
for(i=0;i<n;i++)
scanf("%d",&exp[i]);
sort(exp,exp+n,cmp);
cnt=0,now=0;
while(exp[0]!=0)
{
if(exp[0]+now<a[cnt])
{
now+=exp[0];
exp[0]=0;
}
else
{
for(i=0;exp[i]!=0;i++)
{
if(exp[i+1]+now<a[cnt]) break;
}
exp[i]=0;
cnt++;
now=0;
}
sort(exp,exp+n,cmp);
if(cnt==4) break;
}
for(i=0,ans=0;exp[i]!=0;i++)
{
ans+=exp[i];
}
if(cnt==4) printf("YES %d\n",ans);
else printf("NO\n");
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/