Найти максимальное количество бусинок одного цвета, идущих подряд - PascalABC.NET
Формулировка задачи:
Решение задачи: «Найти максимальное количество бусинок одного цвета, идущих подряд»
procedure Examen(curCount : Integer; curColor : Char; var maxCount : Integer; var maxColor : Char); begin if (curCount > maxCount) or ((curCount = maxCount) and (maxColor > curColor)) then begin maxCount := curCount; maxColor := curColor; end; end; begin var S := System.IO.File.ReadAllText('input.txt'); var fstCount := 0; var allChanges := -1; // Количество первых и сколько раз менялся цвет var maxCount := 0; var maxColor := '9'; var curCount := 0; var curColor := '9'; for var i := 1 to S.Length do if curColor <> S[i] then begin if allChanges = 1 then fstCount := curCount; // Количество первых allChanges += 1; // Смена цвета номер... Examen(curCount, curColor, maxCount, maxColor); curCount := 1; curColor := S[i]; end else curCount += 1; if (allChanges > 0) and (S[1] = curColor) then curCount += fstCount; // Первый + последний, если цвета совпадают Examen(curCount, curColor, maxCount, maxColor); System.IO.File.WriteAllText('output.txt', maxCount.ToString + #32 + maxColor); WriteLn(maxCount.ToString + #32 + maxColor); end.
Объяснение кода листинга программы
В этом коде используется процедура Examen
, которая сравнивает текущее количество бусин (переменная curCount
) и текущий цвет (переменная curColor
) с максимальным количеством бусин и цветом (переменные maxCount
и maxColor
). Если текущее количество бусин больше максимального или если текущий цвет равен максимальному цвету, то максимальное количество бусин и цвет обновляются.
Код также использует цикл for
для чтения строки из файла input.txt
по одному символу за раз. Если текущий символ не равен текущему цвету, то код проверяет, была ли смена цвета. Если да, то количество первых бусин сохраняется, переменная allChanges
увеличивается на 1, вызывается процедура Examen
, и счетчик бусин и цвет сбрасываются. Если текущий символ равен текущему цвету, то счетчик бусин увеличивается.
После прочтения всех символов в строке, код проверяет, была ли смена цвета. Если да, и первый и последний символы совпадают с текущим цветом, то количество первых бусин добавляется к текущему количеству бусин. Затем вызывается процедура Examen
и записывается результат в файл output.txt
.
В конце кода выводится максимальное количество бусин и цвет на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д