Название команды

Для каждого имени найдем все позиции его вхождения в название команды. Это можно сделать при помощи префикс-функции.

Так как количество имен небольшое, можем перебрать все варианты их перестановок, то есть рассмотреть все варианты порядка, в котором имена могут включаться в название команды.

Для каждой перестановки будем делать следующее:

  1. найдем самое левое вхождение первого имени в перестановке;
  2. найдем самое левое вхождение второго имени, такое, что оно начинается строго позже окончания первого;
  3. повторим вышесказанное для всех последующих имен: для имени, которое должно входить в команду $$$(i + 1)$$$-м, будем искать самое левое вхождение, начинающееся строго позже найденного вхождения для $$$i$$$-го слова.

Если для каждого следующего имени удалось найти подходящее вхождение, то потенциальным ответом станет длина префикса, заканчивающегося вхождением $$$(n - 1)$$$-го слова.

Среди всех возможных ответов выберем минимальный. Если минимальная длина префикса равна $$$m$$$, то сократить название команды не получится и ответ будет $$$-1$$$.