Задача №114047. Дети и буквы
Алиса и Боб хотят пройти через турникет в метро. У них есть полоска, на которой в ряд написаны n строчных букв латинского алфавита. Для того, чтобы пройти через турникет, каждый должен приложить к нему бумажку с кодовым словом. Турникет сканирует слово, записанное на бумажке и открывается, позволяя пройти одному человеку. Чтобы запретить человеку ездить по одному билету несколько раз, турникет не откроется если приложить к нему бумажку со словом, которое турникет сканировал до этого.
Алиса и Боб пришли в метро к открытию, поэтому через турникет еще никто не проходил, и он пропустит человека с любым текстом на билете. Детям разрешено вырезать ровно по одному непустому билету из полоски, причем билеты должны состоять из подряд идущих букв полоски и не должны пересекаться . Также, чтобы никто из детей не считал себя обделeнным, билеты, которые они вырежут, должны быть одинаковой длины. После вырезания билетов Алиса, а затем Боб попробуют пройти через турникет. Таким образом, Алиса сможет войти в метро всегда, а Боб сможет войти только если текст на его билете не совпадает с текстом на билете Алисы.
Так как дети маленькие, нужно помочь им определить, можно ли вырезать два различных билета одинаковой длины из полоски, чтобы попасть в метро, и, если это возможно, объяснить им, как это сделать.
В первой строке задано одно целое число n ( 1 ≤ n ≤ 10 6 ) — количество букв, написанных на полоске.
Во второй строке содержится строка, состоящая из n строчных букв латинского алфавита — текст на полоске.
Если невозможно вырезать из полоски два различных слова одинаковой длины выведите « No » (без кавычек).
Иначе в первой строке выведите « Yes » (без кавычек), а во второй строке выведите три целых числа — номер символа на полоске, с которого начнется билет Алисы, номер символа на полоске, с которого начнется билет Боба и длину билетов, которые вырежут дети. Каждый символ полоски должен попасть не более, чем в один билет, а также тексты на билетах должны быть различны. Символы на полоске нумеруются слева направо, начиная с 1 .
Обратите внимание, что после вырезания билета из полоски, его нельзя переворачивать. Так, например, если вырезать билет po из полоски rpo , то получить билет od , перевернув билет po сверху вниз, не получится.
В первом примере Алиса вырежет билет, начинающийся со второго символа полоски и имеющий длину 3. Таким образом, на ее билете будет написано bac . Боб вырежет билет, начинающийся с шестого символа полоски и имеющий длину 3, поэтому на билете Боба будет написано bad .
Во втором примере полоска состоит только из одного символа, поэтому Алиса и Боб не смогут вырезать из нее два непустых слова так, чтобы ни один символ не попал в оба билета.
Тесты к этой задаче состоят из пяти групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов предыдущих групп.
8 abacabad
Yes 2 6 3
1 z
No