问题 I: Prediction and Restriction
/**
模拟
注意条件的判断就ok
**/
int n,k,cnt;
int R,S,P;
string t;
ll ans;
int vis[100005];
int main()
{
cin >> n >> k;
cin >> R >> S >> P;
cin >> t;
memset(vis,0,sizeof(vis));//数组清零
for(int i=0;i<n;i++)
{
if(i-k >= 0 && vis[i-k] == 1 && t[i] == t[i-k]) continue;
//vis等于1说明上次已经加过,而且这次不算分
if(t[i] == 'r') ans += P;
if(t[i] == 's') ans += R;
if(t[i] == 'p') ans += S;
vis[i] = 1;
//把已经加过的标记一下
}
cout << ans << endl;
return 0;
}