Олимпиадный тренинг

Задача . B. Троичная строка


Вам дана строка \(s\), каждый символ которой — 1, 2 или 3. Вы должны выбрать кратчайшую непрерывную подстроку \(s\), в которой каждый из трех символов встречается хотя бы один раз.

Непрерывная подстрока \(s\) — строка, которую можно получить из \(s\) удалением какого-то количества (возможно, ни одного) символов из начала строки \(s\) и какого-то количества (возможно, ни одного) символов из конца строки \(s\).

Входные данные

В первой строке задано одно целое число \(t\) (\(1 \le t \le 20000\)) — количество наборов входных данных.

Каждый набор входных данных состоит из одной строки \(s\) (\(1 \le |s| \le 200000\)). Гарантируется, что каждый символ \(s\)1, 2 или 3.

Сумма длин всех строк не превосходит \(200000\).

Выходные данные

Для каждого набора тестовых данных выведите одно число — длину кратчайшей подстроки \(s\), содержащей символы всех трех типов. Если такой подстроки нет, выведите \(0\).

Примечание

Рассмотрим пример из условия:

В первом наборе входных данных можно использовать подстроку 123.

Во втором наборе входных данных можно использовать подстроку 213.

В третьем наборе входных данных можно использовать подстроку 1223.

В четвертом наборе входных данных можно использовать подстроку 3221.

В пятом наборе входных данных в \(s\) нету символа 3.

В шестом наборе входных данных в \(s\) нету символа 1.

В седьмом наборе входных данных можно использовать подстроку 3112.


Примеры
Входные данныеВыходные данные
1 7
123
12222133333332
112233
332211
12121212
333333
31121
3
3
4
4
0
0
4

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя