1ml1ml慢慢来,之前是一下子减去一整个b[2],就是不能A,后来看了discuss说要1ml1ml的减,那就一毫升一毫升来吧,(对协会出的题有点消极对待了呢(ᵕ≀ ̠ᵕ ))贪心:从大到小的考虑。
#include <algorithm>
#include <iostream>#include <cstdio>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
int a[15],b[15],sum=0,g;
for(int i=0; i<n; i++)
cin>>a[i];
cin>>g;
sort(a,a+n,cmp);
sum+=a[0]/50;
if (a[0]%50) sum++;
for(int i=0; i<n; i++)
b[i]=sum*50-a[i];
while(b[2]!=0)
{
sort(b,b+n,cmp);
g--;
for(int i=0; i<3; i++)
b[i]--;
}
while(g>0)
{
sort(b,b+n,cmp);
if (b[2]==0)
{
sum++;
for(int i=0; i<n; i++)
b[i]+=50;
}
g--;
for(int i=0; i<3; i++)
b[i]--;
}
cout<<sum<<endl;
}
return 0;
}