//poj 2818
//sep9
include <iostream>
using namespace std;
int Q,D,N,P,C;
struct NODE
{
int a,b,c,d;
};
pair<int,NODE> mymin(pair<int,NODE> x,pair<int,NODE> y)
{
if(x.first<y.first) return x;
return y;
}
void solve()
{
NODE x;
pair<int,NODE> ans=make_pair(INT_MAX,x);
for(int a=Q;a>=0;--a)
for(int b=D;b>=0;--b)
for(int c=N;c>=0;--c)
for(int d=P;d>=0;--d){
if(C==a*25+b*10+c*5+d){
int sum=a+b+c+d;
NODE tmp;
tmp.a=a,tmp.b=b,tmp.c=c,tmp.d=d;
ans=mymin(ans,make_pair(sum,tmp));
}
}
if(ans.first==INT_MAX)
puts("Cannot dispense the desired amount.");
else
printf("Dispense %d quarters, %d dimes, %d nickels, and %d pennies.\n",ans.second.a,ans.second.b,ans.second.c,ans.second.d);
}
int main()
{
while(scanf("%d%d%d%d%d",&Q,&D,&N,&P,&C)==5){
if(Q+D+N+P+C==0) break;
solve();
}
return 0;
}
poj 2818 Making Change 枚举
最新推荐文章于 2022-11-17 22:10:12 发布