链接:http://codeforces.com/problemset/problem/349/B
//其实一开始想写dp 结果愣是没写出来 。。。丢人
//贪心:选取体积最小的 接着从剩余的体积加上每一个最小的看看能不能替换比他大的数。。看代码 - -
#include <bits/stdc++.h>
using namespace std;
int a[10];
int res[1000000+10];
int main()
{
int n,mi,t,resmo;
mi=t=10e7;
scanf("%d",&n);
for(int i=1;i<=9;i++)
{
scanf("%d",a+i);
if(a[i]<mi) //最小的
{
mi=a[i];
t=i;
}
}
if(mi>n) {puts("-1");return 0;}
resmo=n%mi; //剩余的
for(int i=0;i<n/mi;i++)
{
res[i]=t;
for(int k=9;k>=t;k--)
{
if(resmo+mi>=a[k]) //最小的加上剩余的如果大于右边的数就替换
{
res[i]=k;
resmo=resmo+mi-a[k];
break;
}
}
printf("%d",res[i]);
}
printf("\n");
return 0;
}