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

Задача . B. Камень-ножницы-бумага с ограничениями


Пусть \(n\) — некоторое положительное целое число, а \(a, b, c\) — некоторые неотрицательные целые числа такие, что \(a + b + c = n\).

Алиса и Боб собираются сыграть в камень-ножницы-бумага \(n\) раз. Алиса знает последовательность жестов, которые будет играть Боб. Однако она должна сыграть камень ровно \(a\) раз, бумагу — ровно \(b\) раз, а ножницы — ровно \(c\) раз.

Обратите внимание, что хоть игра и называется камень-ножницы-бумага, для синхронизации с английским названием все обозначения идут в порядке камень-бумага-ножницы.

Алиса выигрывает, если она побеждает Боба хотя бы в \(\lceil \frac{n}{2} \rceil\) (\(\frac{n}{2}\), округленное вверх до ближайшего целого) раундах, иначе — проигрывает.

Напоминаем, что в камень-ножницы-бумага:

  • камень побеждает ножницы;
  • бумага побеждает камень;
  • ножницы побеждают бумагу.

Ваша задача — по заданной последовательности жестов, которые будет играть Боб, и по числам \(a, b, c\), определить, может ли Алиса выиграть. И если может, то найти некоторую последовательность жестов, которая приведет Алису к победе.

Если существует несколько решений, выведите любое из них.

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

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

Затем следуют \(t\) наборов входных данных, каждый из которых состоит из трех строк:

  • В первой строке записано одно целое число \(n\) (\(1 \le n \le 100\)).
  • Во второй строке записаны три целых числа \(a, b, c\) (\(0 \le a, b, c \le n\)). Гарантируется, что \(a + b + c = n\).
  • В третьей строке содержится последовательность жестов \(s\) длины \(n\). \(s\) состоит только из символов 'R', 'P' и 'S'. \(i\)-й символ равен 'R', если Боб в \(i\)-м раунде выбирает камень, 'P' — если бумагу и 'S' — если ножницы.
Выходные данные

Для каждого набора входных данных:

  • Если Алиса не может выиграть, то выведите «NO» (без кавычек).
  • Иначе выведите «YES» (без кавычек). Также выведите строку \(t\) длины ровно \(n\), которая состоит только из символов 'R', 'P' и 'S' — последовательность жестов, которую должна сыграть Алиса, чтобы выиграть. В \(t\) должно быть ровно \(a\) букв 'R', ровно \(b\) букв 'P' и ровно \(c\) букв 'S'.
  • Если существует несколько решений, выведите любое из них.

В части вывода с «YES»/«NO» регистр букв не имеет значения (например, «yEs», «no» or «YEs» — все корректные значения). Обратите внимание, что в 'R', 'P' и 'S' регистр важен.

Примечание

В первом наборе входных данных примера, в первой игре Алиса выбирает бумагу, а Боб выбирает камень, поэтому Алиса побеждает Боба. Во второй игре Алиса выбирает ножницы, а Боб выбирает бумагу, поэтому Алиса побеждает Боба. В третьей игре Алиса выбирает камень, а Боб выбирает ножницы, поэтому Алиса побеждает Боба. Алиса побеждает Боба 3 раза, и \(3 \ge \lceil \frac{3}{2} \rceil = 2\), поэтому Алиса выигрывает.

Во втором наборе входных данных примера единственная последовательность жестов, которые может выбрать Алиса — это «RRR». Алиса побеждает Боба только в последней игре, поэтому Алиса не может выиграть: \(1 < \lceil \frac{3}{2} \rceil = 2\).


Примеры
Входные данныеВыходные данные
1 2
3
1 1 1
RPS
3
3 0 0
RPS
YES
PSR
NO

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

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