allcoding1_official: post #18937 — TG.ME

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;
}
❤3
August 2, 2026 3.1K