Codeforces Round 747 (Div. 2) |
---|
Закончено |
У Теофаниса есть строка $$$s_1 s_2 \dots s_n$$$ и символ $$$c$$$. Он хочет сделать все символы своей строки равными $$$c$$$, используя наименьшее количество операций.
За одну операцию, он может выбрать число $$$x$$$ ($$$1 \le x \le n$$$) и для каждой позиции $$$i$$$, где $$$i$$$ не делится на $$$x$$$, заменить $$$s_i$$$ на $$$c$$$.
Определите наименьшее количество операций, для того чтобы сделать все символы строки равными $$$c$$$ и соответствующие $$$x$$$-ы, которые нужно выбрать.
В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
В первой строке каждого набора заданы целое число $$$n$$$ ($$$3 \le n \le 3 \cdot 10^5$$$) и строчная буква латинского алфавита $$$c$$$ — длина строки $$$s$$$ и буква, из которой должна состоять строка в результате.
Во второй строке каждого набора задана строка $$$s$$$ из строчных букв латинского алфавита — первоначальная строка.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.
Для каждого набора входных данных, сначала выведите одно целое число $$$m$$$ — наименьшее количество операций для того, чтобы сделать все символы равными $$$c$$$.
Далее выведите $$$m$$$ целых чисел $$$x_1, x_2, \dots, x_m$$$ ($$$1 \le x_j \le n$$$) — $$$x$$$-ы, которые нужно использовать в заданном порядке.
Можно доказать, что при заданных ограничениях ответ всегда существует. Если существует несколько ответов, выведите любой.
3 4 a aaaa 4 a baaa 4 b bzyx
0 1 2 2 2 3
Опишем, что происходит в третьем наборе входных данных:
Название |
---|