#include <iostream>
#include <string>
using namespace std;
int main()
{
int cases;
while(cin>>cases)
{
for(int rounds=1;rounds<=cases;rounds++)
{
cout<<"Case "<<rounds<<":"<<endl;
int index[36];
for(int i=0;i<36;i++)
cin>>index[i];
int num;
cin>>num;
while(num--)
{
int n,min_cost=1000000000,min_base=100;
cin>>n;
cout<<"Cheapest base(s) for number "<<n<<":";
for(int i=2;i<=36;i++)
{
int cost=0,number=n;
while(number>0)
{
cost+=index[number%i];
number/=i;
}
if(cost<min_cost) min_cost=cost,min_base=i;
}
for(int i=2;i<=36;i++)
{
int cost=0,number=n;
while(number>0)
{
cost+=index[number%i];
number/=i;
}
if(cost==min_cost) cout<<" "<<i;
}
cout<<endl;
}
if(rounds!=cases) cout<<endl;
}
}
return 0;
}
2020年8月6日 星期四
11005 - Cheapest Base
程式碼:
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言