Проблема в случае
} else if (Ar[j] == 'C') {
i = j;
break;
}
, причина в том, что как только вы вернетесь к основному циклу, i
будет увеличиваться, поэтому окончание C
не будет считатьсяначало новой группы.Ваш код в основном проверяет каждый второй блок.
Вместо этого вы должны установить
i = j-1;
, чтобы после увеличения i
был индексом C
.
Кроме того, вы должны повторно инициализировать A
и B
в ноль при оценке раздела.