import java.util.*;
class Main {
public static int solve(int N, String colors, int[] neededTime) {
long answer = 0;
int i = 0;
while (i < N) {
int j = i;
while (j + 1 < N && colors.charAt(j + 1) == colors.charAt(i))
j++;
int len = j - i + 1;
if (len >= 2) {
long keep = 0;
long diffuse = neededTime[i];
for (int k = i + 1; k <= j; k++) {
long newKeep = diffuse;
long newDiffuse = Math.min(keep, diffuse) + neededTime[k];
keep = newKeep;
diffuse = newDiffuse;
}
answer += Math.min(keep, diffuse);
}
i = j + 1;
}
return (int) answer;
}
3August 2, 2026 3.1K