#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char str[1000 + 10];int w[27];int main(){long long ans = 0;int wmax = 0,k;scanf("%s%d",str,&k);int len = strlen(str);for(int i = 0 ; i < 26 ; ++i){scanf("%d",w+i);wmax = max(wmax,w[i]);}for(int i = 0 ;i < len ; ++i){ans += (long long )(i+1) * w[str[i] - ‘a‘];}ans += (long long )wmax*(len + 1 + len + k)*k/2;printf("%I64d\n",ans);return 0;}
[2016-04-13][codeforces][447][B][DZY Loves Strings]
原文:http://www.cnblogs.com/qhy285571052/p/17f57f6d415f4a96328dad2d8e5d84f9.html