using System.Text; namespace Lab9.Services; public class StepLogger { private readonly StringBuilder _builder = new(); public void Header(string text) { _builder.AppendLine(text); } public void BlankLine() { _builder.AppendLine(); } public void Line(string text) { _builder.AppendLine(text); } public void ArrayState(int[] array, params int[] highlightedIndices) { var highlighted = highlightedIndices.Length == 0 ? new HashSet() : highlightedIndices.ToHashSet(); var parts = new string[array.Length]; for (var i = 0; i < array.Length; i++) { parts[i] = highlighted.Contains(i) ? $"[{array[i]}]" : array[i].ToString(); } _builder.AppendLine(string.Join(" ", parts)); } public override string ToString() => _builder.ToString(); }