public long[] Solve(string text, long n, string[] patterns)
        {
            List <long> results     = new List <long>();
            SuffixArray s           = new SuffixArray(text + '$');
            var         suffixarray = s.ConstructSuffixArray();

            foreach (var pattern in patterns)
            {
                var res = s.Search(pattern);
                foreach (var index in res)
                {
                    if (!results.Contains(index))
                    {
                        results.Add(index);
                    }
                }
            }
            if (!results.Any())
            {
                return new long[] { -1 }
            }
            ;
            return(results.ToArray());
        }
    }
        private long[] Solve(string text)
        {
            var suffixArray = new SuffixArray(text);

            return(suffixArray.ConstructSuffixArray().Select(x => (long)x).ToArray());
        }