题目:https://ac.nowcoder.com/acm/contest/128/F
//输入数n和1-9个数对应的价值
//输出价值n组成的最大的数
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int a[maxn];
int main()
{
int n, k, mi = maxn;
//输入
scanf("%d",&n);
for(int i = 1; i <= 9; i++) scanf("%d",&a[i]);
//确定位数
mi = *min_element(a+1,a+10);
k = n / mi;
if(k == 0) puts("-1");
else
{
while(k--)
{
for(int i = 9; i >= 1; i--)
{
if(n - k * mi >= a[i])
{
printf("%d",i);
n -= a[i];
break;
}
}
}
puts("");
}
}