C# || Solution
Code\n\npublic class Solution\n{\n    public string[] SplitMessage(string message, int limit)\n    {\n        var cur = 0;\n        var k = 0;\n        var i = 
# Code\n```\npublic class Solution\n{\n    public string[] SplitMessage(string message, int limit)\n    {\n        var cur = 0;\n        var k = 0;\n        var i = 0;\n\n        while (3 + k.ToString().Length * 2 < limit && cur + message.Length + (3 + k.ToString().Length) * k > limit * k)\n        {\n            k += 1;\n            cur += k.ToString().Length;\n        }\n\n        var result = new List<string>();\n\n        if (3 + k.ToString().Length * 2 < limit)\n            foreach (var j in Enumerable.Range(1, k))\n            {\n                var l = limit - (j.ToString().Length + 3 + k.ToString().Length);\n                var r = i + l > message.Length ? message.Length : i + l;\n                result.Add($"{message[i..r]}<{j}/{k}>");\n                i += l;\n            }\n\n        return result.ToArray();\n    }\n}\n```
['C#']