有 1,5,10,50,100,5001,5,10,50,100,500 元的硬币,分别为 C_1, C_5, C_{10}, C_{50}, C_{100}, C_{500}C1,C5,C10,C50,C100,C500 个。现在使用这些硬币来支付 AA 元,最少需要多少个硬币?本题保证至少存在一种支付方案
输入
- 第一行整数 T(1 \leq T \leq 10000)T(1≤T≤10000),表示有 TT 组测试数据
- 每组测试数据占两行:
- 第一行,66 个整数,分别表示 C_1, C_5, C_{10}, C_{50}, C_{100}, C_{500}C1,C5,C10,C50,C100,C500
- 第二行,11 个整数,表示 AA
- 0 \leq C_i \leq 10^90≤Ci≤109
- 0 \leq A \leq 10^90≤A≤109
输出
- 输出 TT 行,每行一个整数,表示每组测试数据中,需要的最少硬币数
样例 1
输入
1 3 2 1 3 0 2 620
输出
6
#include<bits/stdc++.h>
using namespace std;
int k[7];
int c[6]={1,5,10,50,100,500};
int T,A;
int main()
{
cin>>T;
while(T--)
{
int count=0;
for(int i=0;i<6;i++)
cin>>k[i];
cin>>A;
for(int i=5;i>=0;i--)
{
int t=min(A/c[i],k[i]);
A-=t*c[i];
if(A>=0)
{
count+=t;
continue;
}
else
break;
}
cout<<count<<endl;
}
}