和暴力的区别仅在循环长度
这是代码
#include<bits/stdc++.h>
using namespace std;
int a[5],ans=6000;
int main()
{
freopen("light.in","r",stdin);
freopen("light.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
for(int i=1;i<=4;i++)
cin>>a[i];
for(int i1=max(0,a[1]-950);i1<=a[1]&&i1<ans;i1++)
for(int i2=max(0,a[2]-950);i2<=a[2]&&i1+i2<ans;i2++)
for(int i3=max(0,a[3]-950),i4;i3<=a[3]&&i1+i2+i3<ans;i3++)
{
i4=max(0,a[4]-i1/4-i2/2-i3/2);
if(a[1]>i1+i2/2+i3/2+i4/4)
i4=max(i4,(a[1]-i1-i2/2-i3/2)*4);
if(a[2]>i1/2+i2+i3/4+i4/2)
i4=max(i4,(a[2]-i1/2-i2-i3/4)*2);
if(a[3]>i1/2+i2/4+i3+i4/2)
i4=max(i4,(a[3]-i1/2-i2/4-i3)*2);
ans=min(ans,i1+i2+i3+i4);
}
cout<<ans<<"\n";
return 0;
}