Забави з рядками
Обмеження: 2 сек., 256 МіБ
Сьогодні у Зеника й Марічки розважальний вечір, тож вони вирішили
зіграти в дуже цікаву гру. Марічка на двох довгих папірцях записує рядки
\(s\) і \(t\), які складаються із символів
A
та B
. Завдання Зеника — вирізати з рядка
\(s\) рівно \(|t|\) символів так, щоб виконувались такі
дві умови:
Вирізані символи, викладені у тому ж порядку, у якому вони містились в \(s\), утворюють рядок \(t\).
Усі інші шматки \(s\), які залишились, мають вигляд
AA..A
абоBB..B
. Іншими словами, не повинно бути шматка, який містить одночасно символиA
таB
.
Ваше завдання — за заданими Марічкою рядками \(s\) та \(t\) допомогти Зеникові розв’язати задачу.
Вхідні дані
У першому рядку задано рядок \(s\), а в другому — \(t\).
Обидва рядки складаються лише з символів A
та
B
.
Вихідні дані
У першому рядку виведіть YES
, якщо відповідь існує, або
ж NO
в протилежному випадку.
У разі ствердної відповіді, у наступному рядку виведіть рівно \(|t|\) різних цілих чисел у зростаючому порядку — позиції символів, які Зеник повинен вирізати з \(s\) (1-нумерація).
Якщо існує декілька правильних відповідей, дозволяється вивести будь-яку з них.
Обмеження
\(1 \le |t| \le |s| \le 10^5\).
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
AABBBAABBBABBB ABBA | YES 2 5 8 11 |
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
ABABABAB ABBA | NO |
Примітки
У першому прикладі, після відрізання вказаних символів з \(s\), залишаються наступні шматки:
A
, BB
, AA
, BB
,
BBB
.
Жоден із цих шматків не містить одночасно символів A
та
B
.
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|