rt,可以测试#3 #4 #5 没过,请求加强数据
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;;
int pre[21],dp[21],ans;
int T,a[N],len,v[N],p;
char c[N];
inline void init(){
ans=0;
for(int i=1;i<=len;i++) ans+=v[a[i]];
for(int i=1;i<=20;i++) dp[i]=-LONG_LONG_MAX;
dp[0]=0;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>p;
cin>>T;
pre[0]=1;
for(int i=1;i<=20;i++) pre[i]=pre[i-1]*10;
while(T--){
cin>>(c+1);
len=strlen(c+1);
for(int i=1;i<=len;i++) a[i]=c[i]-'0';
for(int i=1;i<=9;i++) cin>>v[i];
init();
for(int i=len;i>=1;i--)
for(int j=min(14ll,len-i+1);j>=1;j--)
dp[j]=max(dp[j],dp[j-1]+v[a[i]]-a[i]*pre[j-1]);
int maxn=0;
for(int i=1;i<=20;i++) maxn=max(maxn,dp[i]);
cout<<ans-maxn<<'\n';
}
return 0;
}