E - Addition and Multiplication 2(贪心)
先可以确定位数。
然后从前到后按位,从9到1枚举放那个,特判一下后面是否能放完即可。
#include<iostream>
using namespace std;
int N,C[10];
main()
{
cin>>N;
int mC=1e9;
for(int i=1;i<=9;i++)
{
cin>>C[i];
mC=min(mC,C[i]);
}
int keta=N/mC;
for(int i=0;i<keta;i++)
{
for(int j=9;j>=1;j--)
{
int rest=N-C[j];
if(rest>=0&&rest/mC>=keta-i-1)
{
cout<<j;
N-=C[j];
break;
}
}
}
}