Educational Codeforces Round 119 D
D. Exact Change
tilian
实在是不好贪心
那我们就暴力一点
我们知道硬币1 2的数量都不会超过3
那我们可以暴力枚举1 2硬币的数量
对于每一个a[i]我们也暴力枚举一下计算出他最少的要用多少个硬币
void solve(){
int n;cin>>n;
vector<int>a(n+1);
for(int i=1;i<=n;i++)cin>>a[i];
int ans=INF;
for(int x=0;x<=2;x++){
for(int y=0;y<=2;y++){
int res=0;
for(int i=1;i<=n;i++){
int mn=INF;
for(int sx=0;sx<=x;sx++){
for(int sy=0;sy<=y;sy++){
int v=a[i]-sx-sy*2 ;
if(v>=0&&v%3==0){
mn=min(mn,v/3);
}
}
}
res=max(res,mn);
}
ans=min(ans,res+x+y);
}
}
cout<<ans<<endl;
}